初始Annotation注解

基本Annotation

@Override  ,它强制一个子类必须覆盖父类的方法,它只能作用于方法,不能作用于其他程序元素。

@Deprecated 用于表示某个程序元素(类、方法)已过时。

@SuppressWarnings 指示该Annotation修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,它会一直作用于改程序元素的所有子元素。在括号内 使用name=value的形式为该Annotation的成员变量设置值,如@SuppressWarnings(value="unchecked")。

堆污染,当把一个不带泛型的对象覆盖一个带泛型的变量时,往往发生堆污染

@SafeVarargs 修饰引发该警告的方法或构造器。

元Annotation ,java.lang.annotation包下,只用来修饰Annotation

@Retention 只能用于修饰一个Annotation定义,用于指定修饰的Annotation可以保留多长时间,该value成员变量的值只能是如下3个:

RetentionPolicy.CLASS 编译器把Annotation记录在class文件中。当运行Java程序时,JVM不再保留Annotation。默认值

RetentionPolicy.RUNTIME 当运行Java程序时,JVM也会保留Annotation,程序可以通过反射获取该Annotation

RetentionPolicy.SOURCE Annotation只保留在源代码中,编译器直接丢弃这种Annotation。

比如:@RetentionPolicy(RetentionPolicy.RUNTIME),当其成员变量为value时,程序中可以直接在括号里指定该成员变量的值。

@Target  它用于指定被修饰的Annotation能用于修饰那些程序单元。

ElementType.ANNOTATION_TYPE

ElementType.CONSTRUCTOR

ElementType.FIELD

ElementType.LOCAL_VARIABLE

ElementType.METHOD

ElementType.PACKAGE

ElementType.PARAMETER

ElementType.TYPE

@Documented 将被javadoc工具提取成文档,所有使用该Annotation修饰的程序元素的API文档里将会包含该Annotation说明

@Inherited 表示被修饰的Annotation具有继承性


自定义Annotation

使用@interface关键字,默认情况下可以修饰任何程序元素。Annotation的成员变量在Annotation定义中以无形参的方法形这一式来声明。一旦在Annotation里定义了成员变量之后,使用该Annotation时就应该为该Annotation的成员变量指定值。指定成员变量的初始值可使用default关键字。

分为两类:

标记Annotation:一个没有定义成员变量的Annotation类型被称为标记。这种Annotation仅利用自身的存在与否来为我们提供信息。

元数据Annotation:包含成员变量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值