简介: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:指定被修饰的注解将具有继承性(某个类被注解,子类也具备该注解)
网友评论