java.lang.annotation

java注解篇。
注解和注释的作用和使用场景有相似之处,但究其作用和使用场景的差异相去甚远。
基础内容请参考其他资料。
本文重在分析注解相关的api
java提供的注解工程支持包在:java.lang.annotation

1、Target :标识注解可以标识的位置(类、方法、成员等)。 note:其值类为ElementType枚举数组。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
ElementType[] value();
}


public enum ElementType {
/** Class, interface (including annotation type), or enum declaration */
TYPE,
...
}


2、Retention:标识注解存留的阶段,这主要是对应了注解对java从开发到运行的各个阶段。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
RetentionPolicy value();
}

具体请参考:RetentionPolicy 的枚举值。
SOURCE:源码级别。对代码开发时有提醒作用。比如:SuppressWarnings
CLASS:保留到class文件阶段。对生成的字节码文件做处理。
RUNTIME:运行时阶段。运行时可以获取注解的信息。

3、Inherited :标识注解是否可以被继承。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}
[b]note:如果注解标识在接口中的方法上,那么实现类的方法注解解析是获取不到的,但是如果接口中的方法标识了Inherited ,那么将能够获取。
[/b]
4、Annotation 注解的内置高层接口。
就像Object类之于 普通的class定义的类一样。

[b]note:注解一般用在运行时的解析,来获取注解的逻辑,所以和java的反射支持紧密相关,请参考java反射功能的文章[/b]。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值