注解annotation,

  注解annotation,

  00-1010 1.三个基本的注释@ Override interpretion Details @ Deprecated interpretion Details可以修改方法、类、包、参数等。@SuppressWarnings解释详细信息元保留保留大小写目标目标值目标大小写已记录已记录已继承的大小写

  00-1010 @ Override:限定一个方法,它是一个覆盖父类的方法。此注释只能用于methods @ deprecated3360,以指示程序元素(类、方法等)。)已过时@ SuppressWarnings 3360禁止编译器警告

  

目录

类父{ public void fly(){ } }类子扩展父{ @ Override public void fly(){ super . fly();}}

 

  

1、三种基本的Annotaton

@Override表示son覆盖fly方法。

 

  00-1010如果没有@Override,fly方法仍然会被覆盖。

  类父{ public void fly(){ } }类子扩展父{ public void fly(){ super . fly();}}写@Override注释,编译器会检查方法是否覆盖父类方法。如果是,编译器将通过。如果不重写,就会出现编译错误。

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

  //@Override基础代码@ target(element type . method)//element type . method说明@Override只能修改方法@ retention(retention policy . source)public @ interface Override { }

  

@Override

public class deprecated text { public static void main(String[]args){ father father 1=new father();father 1 . fly();} } @ deprecated class father { @ deprecated public void fly(){ } }

解读

@ deprecated表示程序元素(类、方法等。)已经过时,会被单词中间的横线提醒。表示不推荐使用。

 

  

细节

 

  00-1010//@ deprecated底层代码@ documented @ retention(retention policy . runtime)@ target(value={ constructor,field,local _ variable,method,package,parameter,TYPE})//说明deprecated可以修改方法、类、包、参数等。Public @ interface已弃用{} 2。@ deprecated可以在新旧版本之间进行兼容转换。

  

@Deprecated

@ suppresswarnings (all )类父{ public void fly(){ }

解读

@ suppress warnings批注可用于隐藏警告信息{}编写您希望隐藏的警告信息。

 

  

效果

 

  00-1010 1.@ suppresswarnings函数

  范围和你放置的位置相关

  

public class Enumtext { @SuppressWarnings("all")//作用范围在main方法 public static void main(String[] args) { father father1 = new father(); father1.fly(); }}@SuppressWarnings("all")//作用范围在father类class father{ public void fly(){}}

指定警告类型有

 

  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,抑制与未用的程式码及停用的程式码相关的警告

  

 

  

 

  

元注解

Retention 指定注解的作用范围,三种SOURCE,CLASS,RUNTIMETarget 指定注解可以在哪些地方使用Documented 指定该注解是否会在javadoc体现Inherited 子类会继承父类注解

 

  

Retention

RetentionPolicy.SOURCE :编译器使用后,直接丢弃注释RetentionPolicy.CLASS: 编译器把注解记录在class文件中,当运行java时JVM不会保留注释RetentionPolicy.PUNTIME:编译器把注解记录在class文件中,当运行java时JVM保留注释

 

  

Retention案例

@Override底层(IDEA进入底层的快捷键为+)

 

  

@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)//表示@Override在编译器使用后,直接丢弃注释public @interface Override {}

 

  

Target

 

  

Target的值

@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//1.CONSTRUCTOR:用于描述构造器2.FIELD:用于描述域3.LOCAL_VARIABLE:用于描述局部变量4.METHOD:用于描述方法5.PACKAGE:用于描述包6.PARAMETER:用于描述参数7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

 

  

Target案例

@Deprecated底层

 

  

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})//表示@Documented在这些地方可以写注解public @interface Deprecated {}

 

  

Documented

 

  

Documented案例

@Deprecated底层

 

  

@Documented//@Deprecated代码会被保存到生产的文档中@Retention(RetentionPolicy.RUNTIME)@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})public @interface Deprecated {}

 

  

Inherited

被它修饰的Annotation将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解

 

  到此这篇关于Java注解Annotaton 的文章就介绍到这了,更多相关Java注解Annotaton 内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: