自定义注解

6 篇文章 0 订阅
4 篇文章 0 订阅

元注解

即注解的注解,元注解的作用就是用来负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型.分别是 @Target@Retention@Documented@Inherited

@Target

用来描述注解的使用范围,即注解放在什么地方,可以是 类(Class)、接口、方法、成员变量、枚举等等

以下是取值范围:

1.CONSTRUCTOR:用于描述构造器 
2.FIELD:用于描述域 
3.LOCAL_VARIABLE:用于描述局部变量 
4.METHOD:用于描述方法 
5.PACKAGE:用于描述包 
6.PARAMETER:用于描述参数 
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

@Retention

该标识表示 注解的有效区间。即使在源码中、还是编译期间、或者运行时。 取值范围如下:

1.SOURCE:在源文件中有效(即源文件保留) 
2.CLASS:在class文件中有效(即class保留) 
3.RUNTIME:在运行时有效(即运行时保留)

@Documented

Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员

@Inherited

@Inherited 标识的注解是可以被继承的,如果这个注解(@Inherited标识的自定义注解) 是放在一个Class 类的上面,那么它的子类是可以继承到的。

需要注意到的是,一个类不从它实现的接口继承,一个方法不从它所重载的方法继承,说直白点,就是这种继承不适用于 实现接口与方法的重载
  

自定义注解
定义注解格式: 
  public @interface 注解名 {定义体}

简要说明:

1.使用@interface来自定义注解时,自动继承了 java.lang.annotation.Annotation,由编译程序自动完成细节。

2.不能继承其他的注解或者接口。

3.定义体中的方法实际上是声明了一个配置参数。返回值类型就是参数的类型(只能是 基本数据类型、Class、String、enum、Annotation、以及以上的数组类型) 可以使用default 来声明参数的 默认值。

只能使用public 或者 defalut 。

String value(); // 这里使用的是默认的default 类型

如果只有一个成员,最好使用 value()

单纯的写自定义注解时没有任何作用的,对于自定义注解的处理可以使用 Apt 注解处理器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值