Java注解之元注解
一、元注解作用
用来修饰自定义的注解
二、元注解
1、@Target:用来标注自定义的注解可以用来修饰程序中的哪些元素
注意:如果不加@Target注解的话,自定义注解可以用于修饰程序中的任何元素,如图所示
2、@Retention :用于指定自定义的注解可以保存多久,即在java程序工作时的那一个阶段
首先我们先了解,java程序的工作原理图:
@Retention有如下的四个属性值:
RetentionPolicy.SOURCE:被修饰的注解只存在源程序中,编译器(即javac.exe文件)将直接丢弃被修饰的注解,因此程序运行时不会得到注解,如下图,控制台没有输出注解
RetentionPolicy.CLASS:默认值,编译器将被修饰的注解存在class文件中,当运行Java程序时,虚拟机不再保留注解,如下图所示,控制台也没有输出注解
RetentionPolicy.RUNTIME:编译器将把注解记录在class文件中,当运行java程序时,虚拟机保留注解,程序可以通过反射获取该注解,如下图所示,控制台输出注解:
3、@Documented :执行 javadoc命令时,会将被@Documented的注解加入文档中
执行doc命令:
打开doc文档,可以看见被修饰的文档,有被修饰的注解
4、@Inherited:如果父类所使用的注解有@Inherited修饰,则子类可以继承该注解,否则不能继承