关于java中自定义注解的使用
作者:crazyK.
这篇文章主要介绍了关于java中自定义注解的使用,注解像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中,需要的朋友可以参考下
一、java注解的定义、描述
注解是一种能被添加到java源代码中的元数据,方法、类、参数和包都可以用注解来修饰。注解可以看作是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Indexed public @interface Component { String value() default ""; }
二、创建一个注解的基本元素
修饰符
访问修饰符必修为public,不写默认为public
关键字
关键字为@interface
注解名称
注解名称为自定义注解的名称,例如上面的Component
注解类型元素
注解类型元素是注解中内容,根据需要标志参数,例如上面的value
三、元注解(@Target、@Retention、@Inherited、@Documented)
我们上面的创建的注解Component上面还有几个注解(@Target、@Retention、@Inherited、@Documented),这四个注解就是元注解,元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的元注解类型,它们被用来提供对其它 注解类型作标志操作(可以理解为最小的注解,基础注解)
1.@Target
用于描述注解的使用范围,该注解可以使用在什么地方
Target类型 | 描述 |
ElementType.TYPE | 应用于类、接口(包括注解类型)、枚举 |
ElementType.FIELD | 应用于属性(包括枚举中的常量) |
ElementType.METHOD | 应用于方法 |
ElementType.PARAMETER | 应用于方法的形参 |
ElementType.CONSTRUCTOR | 应用于构造函数 |
ElementType.LOCAL_VARIABLE | 应用于局部变量 |
ElementType.ANNOTATION_TYPE | 应用于注解类型 |
ElementType.PACKAGE | 应用于包 |
2.@Retention
表明该注解的生命周期
生命周期类型 | 描述 |
RetentionPolicy.SOURCE | 编译时被丢弃,不包含在类文件中 |
RetentionPolicy.CLASS | JVM加载时被丢弃,包含在类文件中,默认值 |
RetentionPolicy.RUNTIME | 有JVM加载,包含在类文件中,运行时可以被获取到 |
3.@Inherited
这是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited的注解类型被用于一个class,则这个注解将被用于该class的子类
4.@Documented
表明该注解标记的元素可以被Javadoc等工具文档化
到此这篇关于关于java中自定义注解的使用的文章就介绍到这了,更多相关Java自定义注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!