Java元注解@Target学习笔记
近期在自学java,众所周知用Thinking in Java作为Java入门的第一本书无异于作死,然而啃了快三分之一的我还是不愿意换一本书。网上的资料真假难辨,只好求助于goto快捷键看源码和注释。也是出于好奇吧,总喜欢追根溯源,点到了最后点到了元注解@Target里边。
@Target可用于返回注释类型的元素类型数组,通俗点说,就是这个注解会告诉jvm这个类是个啥东西或者这个方法是个啥东西。
注释可能出现的语法位置被分成几个部分
—声明上下文,其中注解应用于声明
和
—类型上下文,其中注释应用于中使用的类型声明和表达式。
一般我们见到它的时候它的形式都是@Target(ElementType.Element_TYPE)
这个ElementType是一个枚举类型,它可以取的值有以下10种:
1:TYPE:类,接口(包括注解)或者枚举类型定义
2:FIELD:字段声明(包括枚举常量)
3:METHOD:方法定义
4:PARAMETER:正式参数声明
5:CONSTRUCTOR:构造函数声明
6:LOCAL_VARIABLE:局部变量声明
7:ANNOTATION_TYPE:注解类型声明
8:PACKAGE:包声明
9:TYPE_PARAMETER:类型参数声明
10:TYPE_USE:类型使用(TYPE_USE常量包括类型声明和类型参数,便于类型构造器的设计,可以为注释类型提供语义
其中,注解
ANNOTAION_TYPE,CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,PARAMETER,TYPE和PARAMETER_TYPE属于声明上下文类型