Java annotation

常见注解包

java.lang.annotation.Retantion

java.lang.annotation.RetantionPolicy

java.lang.annotation.Target

java.lang.annotation.ElementType 

  • 自定义注解可以通过四个元注解@Retention,@Target,@Inherited,@Documented,分别说明它的声明周期,使用位置,是否被继承,是否被生成到API文档中。

  • Annotation 的成员在 Annotation 定义中以无参数有返回值的抽象方法的形式来声明,我们又称为配置参数。返回值类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组

  • 可以使用 default 关键字为抽象方法指定默认返回值

  • 如果定义的注解含有抽象方法,那么使用时必须指定返回值,除非它有默认值。格式是“方法名 = 返回值”,如果只有一个抽象方法需要赋值,且方法名为value,可以省略“value=”,所以如果注解只有一个抽象方法成员,建议使用方法名value。

 

java 注解策略

RetantionPolicy:

Source  源码

Class    源码和类

Runtime  源码和类和运行时

* SOURCE:注解只在源代码中可用,编译器会丢弃这种注解。
* CLASS:注解在源代码和类文件中可用,但在运行时不可用。
* RUNTIME:注解在源代码、类文件和运行时都可用。

 @Retantion(RetantionPolicy.RUNTIME)

 @Target({ElementType.Field ...})

可以使用@Target来指定一个注解只能用于方法,或者只能用于类等。

如果注解只有一个 value字段,那么使用的时候 可以直接写 value值

@Inherited 注解子类自动继承父类的注解

@Inherited注解的自动继承特性是由Java的反射API实现的,而不是由@Inherited注解的代码直接实现的。  当你使用Class类的getAnnotation或isAn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值