一.java注解
1.Java自带标准注解 @Override @Deprecated @SuppressWarnings
2.元注解 @Retention @Documented @Target @Inherited @Repeatable
3.自定义注解
二.自定义注解例子
@Document
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation{
String value() ;
String[] values();
}
不需要用到的元注解可以不写
三.元注解说明
@Retention:
指定 Annotation 的保存范围
RetentionPolicy.SOURCE 保留在 源文件(*.java)
RetentionPolicy.CLASS 保留在 源文件(*.java) 类文件(*.class)
RetentionPolicy.RUNTIME 保留在 源文件(*.java) 类文件(*.class) 执行时加载到JVM
@Target:
指定 Annotation 的使用限制
<有需要时可以多写,比如 @Target({ElementType.TYPE, ElementType.METHOD,}) >
ElementType.TYPE 接口 类 枚举 注解
ElementType.FIELD 字段 枚举常量
ElementType.METHOD 方法
ElementType.PARAMETER 方法参数
ElementType.CONSTRUCTOR 构造函数
ElementType.LOCAL_VARIABLE 局部变量
ElementType.ANNOTATION_TYPE 注解
ElementType.PACKAGE 包
@Document:
使用了此注解后,此 Annotation 在生成 java doc 时就可以加入类或方法的一些说明信息
补充:
java Doc --> 文档注释
@Inherited:
如果一个 Annotation 需要被其子类所继承,则使用 @Inherited
四.补充
@Override 方法覆写时使用
@Deprecated 声明一个不建议使用的注方法
@SuppressWarnings 压制警告