关于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自定义注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot:JPA + AuditingEntityListener时区设置方式
这篇文章主要介绍了SpringBoot:JPA + AuditingEntityListener时区设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
Netty进阶之EventExecutorGroup源码详解
这篇文章主要介绍了Netty进阶之EventExecutorGroup源码详解,EventExecutorGroup继承了JDK的ScheduledExecutroService,那么它就拥有了执行定时任务,执行提交的普通任务,需要的朋友可以参考下2023-11-11
Java安全 ysoserial CommonsCollections3示例分析
这篇文章主要为大家介绍了Java安全 ysoserial CommonsCollections3示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-10-10


最新评论