Java元注解:@Target、@Retention、@Documented、@Inherited、@Repeatable。

元注解(注解的注解):如自定义注解,需要被元注解修饰,定义该注解类的一些基本特征。

元注解:@Target、@Retention、@Documented、@Inherited、@Repeatable。
@Target(ElementType.TYPE):定义注解使用的位置;括号内为定义的使用位置,数组形式,可以定义多个使用位置
ElementType枚举元素元素指定的使用范围
TYPElass,interface,enum–类,接口,枚举
FIELDfield–字段(包括枚举常量)
METHODmethod–方法声明
PARAMETERparameter–形式参数声明
CONSTRUCTORconstructor–构造方法
LOCAL_VARIABLElocalVariable–局部变量
ANNOTATION_TYPEannotation–注解类型
PACKAGEpackage–包上
TYPE_PARAMETER类型参数–可以用于类的泛型声明
TYPE_USE包括类型声明和类型参数声明
@Retention: 定义注解的生命周期
RetentionPolicy枚举元素元素使用生命周期
SOURCE源码级别保留,编译时忽略注解作用
CLASS编译级别保留,编译后的class文件中存在,在jvm运行时丢弃,这是默认值
RUNTIME运行级别保留,编译后的class文件中存在,在jvm运行时保留,可以被反射调用
@Documented:定义注解的标记功能:Javadoc工具会将此注解标记的注解的信息包含在javadoc中
//只测试注解功能,不牵涉java的文档注释功能
/*
先自定义一个注解
*/
@Documented
public @interface TestDoc {
   String doc();
}

/*编写一个测试类*/

/**
 * @author 无为
 * @version 1.2
 * 此处的文档注释只是为了生成javadoc时可以显示作者和版本号
 */
public class TestDocAnnotations{

    @TestDoc(doc="hello world")
    public void testJavaDoc(){
        System.out.printf("@Document");
    }
 
}
/*
执行 javadoc命令--cmd进入到该java类的具体位置,执行命令
help指定的文件夹(默认是当前java类对应的位置)-author -version可以不需要*/
javadoc -d help -author -version TestDocAnnotations.java
    
/*执行完毕后打开TestDocAnnotations.html可以发现如下内容
	方法详细资料
    testJavaDoc
    
    @TestDoc(doc="hello world")
    public void testJavaDoc()
*/  
@Inherited注解
  • 如果自定义注解使用了该注解,当前自定义注解被A类引用后,A类的子类会继承该自定义注解;
  • 此注解只对(引用该注解的)自定义注解标记的超类有效,对接口是无效的。
@Repeatable注解
  • 解决一个类上不能标注重复的注解,值一般是另一个注解,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值