注解Annotation

简介:1.代码中的特殊标记,可以在编译、类加载、运行时被读取操作,在不改变原有逻辑的情况下在源文件中嵌入一些补充信息。

           2.可以像修饰符一样被使用,用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,信息保存在注解的“name=value”中。

           3.能用来为程序元素(类、方法、成员变量等)设置元数据(MeteData)


JDK内置的基本注解类型(3个)

@Override:限定重写父类方法(只能用于方法)

@Deprecated:用于表示某个程序元素已过时

@SuppressWarning:抑制编译器警告


自定义注解类型

public @interface MyAnnotation{

            //String value();

            //String[] value();

            String value() default "hello";

}

使用:@MyAnnotation(value = "你好")


元注解(4个)

简介:对注解进行注解,修饰实体数据的数据叫元数据(String name = "hello"),修饰注解的注解叫元注解。

@Retention:指定被修饰的注解保留多长时间,RUNTIME生命周期最长

                       RetentionPolicy.SOURCE:编译器直接丢弃这种策略的注释

                       RetentionPolicy.CLASS:编译器把注释记录在class文件中,当运行Java程序JVM不保留注解,这是默认值

                       RetentionPolicy.RUNTIME:编译器把注释记录在class文件中,当运行Java程序JVM保留注解,程序可以通过反射获取注释                                                               

@Target:指定被修饰的注解能修饰哪些程序元素,@Target( { TYPE,FIELD,METHOD... } )

@Documented:指定被修饰的注解将被javadoc工具提取成文档(必须设置@Retention为RUNTIME)

@Inherited:指定被修饰的注解将具有继承性(某个类被注解,子类也具备该注解)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容