自定义注解上的注解@Target,@Retention,@Documented

1.Target

在Java中,自定义注解可以使用@Target元注解来指定注解可以应用的元素类型。@Target注解具有ElementType类型的value属性,可以设置一个数组,用于指定注解可以应用到的元素类型。以下是一些可能的ElementType类型:

- ElementType.TYPE:类、接口或枚举类型
- ElementType.FIELD:字段
- ElementType.METHOD:方法
- ElementType.PARAMETER:方法参数
- ElementType.CONSTRUCTOR:构造函数
- ElementType.LOCAL_VARIABLE:局部变量
- ElementType.ANNOTATION_TYPE:注解类型
- ElementType.PACKAGE:包
- ElementType.TYPE_PARAMETER:泛型类型参数
- ElementType.TYPE_USE:任意类型使用

例如,可以在自定义注解类上使用@Target注解来指定注解可以应用到类、接口或枚举类型:

```
@Target(ElementType.TYPE)
public @interface MyAnnotation {
    // ...
}
```

这样,使用该注解的时候,只能应用到类、接口或枚举类型上,而不能应用到其他元素类型上。

2. @Retention

在Java中,自定义注解可以使用@Retention元注解来指定注解的生命周期。@Retention注解具有RetentionPolicy类型的value属性,可以设置一个枚举值,用于指定注解的生命周期。以下是RetentionPolicy类型的可能值:

- RetentionPolicy.SOURCE:注解只在源代码中存在,编译后被丢弃。
- RetentionPolicy.CLASS:注解在源代码和编译后的字节码中存在,运行时被丢弃。
- RetentionPolicy.RUNTIME:注解在源代码、编译后的字节码和运行时都存在,可以通过反射机制获取。

例如,可以在自定义注解类上使用@Retention注解来指定注解的生命周期为RUNTIME:

```
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // ...
}
```

这样,使用该注解的时候,注解在源代码、编译后的字节码和运行时都存在,可以通过反射机制获取。

3.@Documented

在Java中,自定义注解可以使用@Documented元注解来指定注解是否包含在JavaDoc文档中。@Documented注解没有属性,只需要将其放在自定义注解类上即可。如果一个注解被@Documented注解修饰,则在使用JavaDoc工具生成文档时,该注解会被包含在文档中。

例如,可以在自定义注解类上使用@Documented注解来指定注解包含在JavaDoc文档中:

```
@Documented
public @interface MyAnnotation {
    // ...
}
```

这样,在使用JavaDoc工具生成文档时,如果某个类或方法使用了该注解,该注解会被包含在生成的文档中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值