/*Annotation:
*jdk5.0新增功能
*Annotation其实就是指特殊标记,这些标记可以在编译,类加载,运行时被读取
*程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息
*
* Annotation常见实例
* 示例一:生成文档的相关注解
* @author
*
* 示例二:JDK自带注解(编译器注解)
* @Override 重写, 标识覆盖它的父类的方法
* @Deprecated 已过期,表示方法是不被建议使用的
* @SuppressWarnings 压制警告,抑制编译期警告
*
*
*
* 自定义注解:参考SuppressWarnings
* //注解中的成员变量以无参函数的形式定义,返回类型及成员变量的数据类型,方法名为成员变量的名称
* 没有成员变量的注解。如@Override,将其称为标识
* 有成员变量的注解,在使用时必须指明成员变量的值
*
* 示例三:jdk提供的4种元注解:修饰其他类注解的注解
* @Target 表示该注解用于什么地方,可取的值包括:
ElementType.CONSTRUCTOR 构造器声明
ElementType.FIELD 域声明(包括 enum 实例)
ElementType.LOCAL_VARIABLE 局部变量声明
ElementType.METHOD 方法声明
ElementType.PACKAGE 包声明
ElementType.PARAMETER 参数声明
ElementType.TYPE 类,接口(包括注解类型)或enum声明
ElementType.ANNOTATION_TYPE 注解
jdk 1.8新增
ElementType.TYPE_PARAMETER 类型变量的声明语句中(如泛型声明)
ElementType.TYPE_USE 使用类型变量的任何语句中
* @Retention(滞留) 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
RetentionPolicy.SOURCE 注解将被编译器丢弃
RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃
RetentionPolicy.RUNTIME JVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。
@Documented 被该元注解修饰的注解将被javadoc工具提取成文档。默认情况下javadoc不包含注解,
>>定义为Documented的注解必须设置为@Retention( RetentionPolicy.RUNTIME)
@Inherited 注解具有继承性,即如果某个类使用了被该元注解修饰的注解,则其子类自动具有该注解
*
* jdk 8 新特性 :可重复注解,标注@Repeatable
* 可重复注解的元注解必须一致:MyAnnotations与MyAnnotation
* */
【Java 笔记】Annotation
最新推荐文章于 2022-08-03 22:43:05 发布