Java自定义注解开发

什么是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类型

    ⑥.以上所有类型的数组

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容