什么是Java注解开发
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。
Java注解开发作用
1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;
2、在编译时进行格式检查。如@Override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出;
3、自定义注解,在反射的 Class, Method, Field 等方法方法中,有许多于 Annotation 相关的接口。可以在反射中解析并使用 Annotation。常见的的就是在各种框架中的应用;
Java自定义注解
1、@interface关键字定义注解
2、@Target用来说明Annotation所修饰的对象范围
@Target取值是在java.lang.annotation.ElementType这个枚举中规定的:
CONSTRUCTOR:用于描述构造器
FIELD:用于描述域
LOCAL_VARIABLE:用于描述局部变量
METHOD:用于描述方法
PACKAGE:用于描述包
PARAMETER:用于描述参数
TYPE:用于描述类、接口(包括注解类型) 或enum声明
3、@Retention用来定义该Annotation被保留的时间长短:
@Retention的取值是在RetentionPoicy这个枚举中规定的
SOURCE:在源文件中有效(即源文件保留)
CLASS:在class文件中有效(即class保留)
RUNTIME:在运行时有效(即运行时保留)
4、@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。
5、@Inherited元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。
5、注解参数的可支持数据类型:
①.所有基本数据类型(int,float,boolean,byte,double,char,long,short)
②.String类型
③.Class类型
④.enum类型
⑤.Annotation类型
⑥.以上所有类型的数组