当前位置: 首页 > news >正文

Java的注解

        1)注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包,类,方法,属性,构造器,局部变量等信息

        2)和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息

        3)在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等.在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所一流的繁冗代码和XML配置等

基本的Annotation介绍:

        使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符使用,用于修饰它支持的程序元素

三个基本的Annotation:

1)@Override:限定某个方法,是重写父类方法,该注解只能用于方法

2)@Deprecated:用于表示某个程序元素(类,方法等)已过时

3)@SuppressWarnings:抑制编译器警告

一.@Override:限定某个方法,是重写父类方法,该注解只能用于方法

package com.annotation;public class Override_ {public static void main(String[] args) {}
}
class Father{public void fly(){System.out.println("你爸在飞.....");}
}
class Son extends Father{//1.@Override放在fly方法上,表示子类的fly方法是重写了父类的//2.这里如果没有写@Override注解,它还是重写了父类的fly(),编译器会判断语法是否属于重写//3.如果写了@Override注解,编译器就会去检查该方法是否真的重写了父类的某个方法//  如果的确重写了,则通过.如果没有构成重写,则编译错误.它的价值就在于判断你语法是否错误@Overridepublic void fly() {System.out.println("你鹅子在飞.....");}
}
/*
@Override源码:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
如果发现@interface,则表示它是一个注解类*/

@Override使用说明:

1.@Override表示指定重写父类的方法(从编译层面验证),如果父类没有fly方法,则会报错

2.如果不写@Override注解,而父类仍有public void fly(){},仍然构成重写

3.@Override只能修饰方法,不能修饰其他类,包,属性等

4.查看@Override注解源码为

@Target(ElementType.METHOD)

说明只能修饰方法

5.@Target是修饰注解的注解,称为元注解

二.@Deprecated:用于表示某个程序元素(类,方法等)已过时

package com.annotation;public class Deprecated_ {public static void main(String[] args) {A a = new A();a.hi();System.out.println(a.n1);}
}//1.@Deprecated 修饰某个元素,表示该元素已过时
//2.即该元素不推荐使用,但仍然可以使用
@Deprecated
class A{@Deprecatedpublic int n1 = 10;@Deprecatedpublic void hi(){System.out.println("泥嚎");}
}

@Deprecated说明:

1.用于表示某个程序元素(类,方法等)已过时

2.可以修饰方法,类,字段,包,参数等等

3.@Target可以使用的地方:

@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})

        (构造器,字段(属性),局部变量,方法,包,参数,类型(类))

4.@Deprecated的作用可以做到新旧版本的兼容和过渡

三.@SuppressWarnings:抑制编译器警告

package com.annotation;import java.util.ArrayList;
import java.util.List;public class SuppressWarnings {//1.当我们不希望看到右上角黄色警告的时候,可以使用@SuppressWarings来抑制警告信息//2.在大括号中,可以写入你希望抑制(不显示)的警告信息--csdn博客中有记录//3.关于@SuppressWarnings的作用范围是和放置的位置相关//  比如@SuppressWarnings放置在main方法,那么抑制警告的范围就是main方法中//  如果放在类上就是全部代码生效@java.lang.SuppressWarnings({"rawtypes","unchecked","unused"})//直接写all能抑制所有警告public static void main(String[] args) {List list = new ArrayList();list.add("jack");list.add("tom");list.add("mary");int i;System.out.println(list.get(1));}
}

@SuppressWarning源码分析:

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {String[] value();
}

        (1)通过源码可知,@SuppressWarning能够放置的位置:(类型(类),字段(属性),方法,参数,构造器,局部变量)

        (2)该注解类有数组String[] value();,使用时可以在( ) 内填入一个数组比如{"rawtypes","unchecked","unused"}

@SuppressWarning 中的属性介绍以及属性说明

all,抑制所有警告
boxing,抑制与封装/拆装作业相关的警告
cast,抑制与强制转型作业相关的警告
dep-ann,抑制与淘汰注释相关的警告
deprecation,抑制与淘汰的相关警告
fallthrough,抑制与switch陈述式中遗漏break相关的警告
finally,抑制与未传回finally区块相关的警告
hiding,抑制与隐藏变数的区域变数相关的警告
incomplete-switch,抑制与switch陈述式(enum case)中遗漏项目相关的警告
javadoc,抑制与javadoc相关的警告
nls,抑制与非nls字串文字相关的警告
null,抑制与空值分析相关的警告
rawtypes,抑制与使用raw类型相关的警告
resource,抑制与使用Closeable类型的资源相关的警告
restriction,抑制与使用不建议或禁止参照相关的警告
serial,抑制与可序列化的类别遗漏serialVersionUID栏位相关的警告
static-access,抑制与静态存取不正确相关的警告
static-method,抑制与可能宣告为static的方法相关的警告
super,抑制与置换方法相关但不含super呼叫的警告
synthetic-access,抑制与内部类别的存取未最佳化相关的警告
sync-override,抑制因为置换同步方法而遗漏同步化的警告
unchecked,抑制与未检查的作业相关的警告
unqualified-field-access,抑制与栏位存取不合格相关的警告
unused,抑制与未用的程式码及停用的程式码相关的警告

http://www.dtcms.com/a/530031.html

相关文章:

  • 专业公司网站 南通免费素材库大全
  • 哪家网站设计公司好出货入货库存的软件
  • 做淘宝客可以有高佣金的网站宣传册设计一般多少钱
  • 网站logo图怎么做如何加强网站安全建设
  • [linux] windows如何快乐部署LLM:linux子系统—wsl
  • 单片机开发---分层架构设计
  • 响应式网站建设福州网页版微信二维码扫描
  • 山东港基建设集团网站wordpress双主题缓存
  • 岳阳企业网站定制开发wordpress 4.8.2 漏洞
  • BELLE-A论文翻译
  • (三)Gradle 依赖版本控制
  • 汕头网站建设工作做一个电子商务网站建设策划书
  • 【Java 反射机制】
  • 2016年网站设计风格山西seo网站设计
  • 局域网建设网站视频教程网站制作都包括什么
  • 网站建设工作推进会上的讲话在电商网站上做推广的技巧
  • 公司做网络推广哪个网站好网络推广专员好做吗
  • 最优传输理论学习(1)+PINN文献阅读
  • 网站关键词几个好wordpress 徽标
  • 培训网站项目ppt怎么做东莞网站优化案例
  • 如何建团购网站网站建设推广襄樊
  • C++数据结构【顺序表和Vector】
  • mujoco 仿真导纳控制律
  • 做引流去那些网站好网站挖掘工具
  • 西安免费自助建站模板淄博seo排名
  • 在线商城的程序源代码
  • 网站图片大小大连事件最新消息
  • 网站 设计 语言注册资金1000万实际需要多少钱
  • 做网站的市场网站建设预算明细
  • 学生管理系统升级