理解注解:
1.Annotation就是代码中的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用注解可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。
2.在JavaEE/Android 中注解占据了更重要的角色
使用示例
1、生成文档注释
2、在编译时进行格式检查:
@Override:限定重写父类方法,只能用于方法。
@Deprecated:表示所用元素(类,方法等)已过时,有更好的。
@SuppressWarnings:抑制编译器警告。
3、跟踪代码依赖性,实现替代配置文件功能
如何自定义注解:参照SuppressWarnings定义
①注解声明为@interface (权限为public)(public @interfuce a{ })
②内部定义成员,通常用value表示 (例:String [] valvel)
③可指定成员的默认值,使用default定义。(例:int a deafult 0)
④如果自定义注解没有成员,表明是一个标识作用
注:如果有成员,必须给成员赋值后使用
自定义注解必须配上注解的信息处理流程(使用反射)才有意义
public @interface point{
String [] values default "value";
}
元注解:修饰其他注解的注解
@Retention:指明所修饰Annotation的生命周期.只有声明RUNTIME生命周斯的注解,才能用反射获取
@Target:用于指定被修饰的Annotation能修饰哪些元素
@Documented:表示修饰的注解在被javadoc解析时,保留下来。
@Inherited:被修饰的Annotation将具有继承性。
jdk8中注解的新特性:可重复注解、类型注解
可重复注解:
①在MyAnnotation 上声明 @Repeatable,参数为MyAnnotions. class
②MyAnnotation 的Target和Retention 和My Annotations相同
类型注解:
① ElementType.TYPE_PARAMETER:表示该注解能写在类型变量的声明语句中。
②ElementType.TYPE_USE:表示该 注解能写在使用类型的任何语句中,