Java中自定义注解如何实现?

文章介绍了Java中的元注解,包括@Documented用于生成Javadoc,@Retention控制注解的生命周期,@Target指定注解的应用范围,@Inherited允许子类继承父类注解。此外,JDK1.8增加了@Native定义常量和@Repeatable支持重复注解的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中所有的元注解都定义在java.lang.annotation包下

一:提供了四种元注解
  1. @Documented:指定被标注的注解会包含在javadoc中。
  2. @Retention: 指定注解的生命周期(源码、class文件、运行时)
  • RetentionPolicy .SOURCE : 在编译阶段丢弃
  • RetentionPolicy .CLASS : 在类加载的时候丢弃
  • RetentionPolicy .RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。
    3: @Target:指定注解使用的目标范围(类、方法、字段等)
ElementType.**CONSTRUCTOR**用于描述构造器。

● ElementType.FIELD :成员变量、对象、属性(包括enum实例)。

● ElementType.LOCAL_VARIABLE: 用于描述局部变量。

ElementType.METHOD : 用于描述方法。

ElementType.PACKAGE :用于描述包。

● ElementType.PARAMETER:用于描述参数。

● ElementType.**ANNOTATION_TYPE**:用于描述参数

● ElementType.**TYPE**用于描述类、接口(包括注解类型)enum声明。

4:@Inherited:指定子类可以继承父类的注解,只能是类上的注解,方法和字段的注解不能继承。

二:jdk1.8又提供了以下两个元注解

5:@Native: 指定字段是一个常量,其值引用native code。

6:@Repeatable: 注解上可以使用重复注解,即可以在一个地方可以重复使用同一个注解,像spring中的包扫描注解就使用了这个。

7:使用 ** @interface ** 关键词来定义注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值