Java核心知识:自定义注解
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。
元注解:
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:
1.@Target 表示注解用在什么地方,
取值(ElementType)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域(成员biannual)
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明以及构造方法
2.@Retention 表示什么级别保存该注解信息,
取值(RetentionPoicy)有:
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class/字节码上保留)
3.RUNTIME:在运行时有效(即虚拟机运行时保留)
3.@Documented 用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员,
4.@Inherited 是否允许子类继承父类中的注解
自定义注解:
格式 public @interface 注解名 {定义体}
注解参数的可支持数据类型:
1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)
2.String类型
3.Class类型
4.enum类型
5.Annotation类型
6.以上所有类型的数组
作用:
1. 用来声明一个注解,可以通过defalut来声明此参数的默认值
2.自定义注解时,自动继承java.lang.annotation.Annotation接口
3.可以通过反射获取自定义注解。
应用场景 :
配合反射做框架、配合AOP做功能增强。
参考文字url:https://www.cnblogs.com/peida/archive/2013/04/24/3036689.html