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注解的本质的主要内容,如果未能解决你的问题,请参考以下文章

Java注解的本质

Java注解的本质

Java注解的本质

Java注解的本质

Java注解的本质

沉淀再出发:java中注解的本质和使用