Java注解的本质
Posted Jsen_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java注解的本质相关的知识,希望对你有一定的参考价值。
JDK注解定义格式解析
通过观察JDK的常用注解如:
@Override
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
@Deprecated
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}
我们不难发现注解的定义格式为:
元注解(暂且不需要弄懂)
public @interface 注解名称{}
看起来很像一个接口
自定义注解
我们按照JDK注解的格式自定义一个
public @interface MyAnno {
}
通过javac
编译 javap
反编译
我们可以发现
public interface com.learn.wxs.annotation.MyAnno extends java.lang.annotation.Annotation {
}
总结
我们自定义的MyAnno
注解本质就是一个继承了java.lang.annotation.Annotation
接口的接口
以上是关于Java注解的本质的主要内容,如果未能解决你的问题,请参考以下文章