自定义注解
@Deprecated:
声明一个不建议使用的方法
@SuppressWarning({"unchecked","depercation"}):
压制警告
unchecked:执行了未检查的转换时警告;如:泛型操作中没有指定泛型类型
depercation:使用了不赞成使用的类或方法时的警告
path:当设置了一个错误的类路径、源文件路径时出现的警告
serial:当在可序列化的类上缺少serialVersionUID定义时的警告
finally:任何finally字句不能正常完成时的警告
all:关于以上所有情况的警告
自定义注解:
public @interface Annotation名{
数据类型 变量名称() default 默认值;
}
@interface 相当于继承了Annotation接口
@Retention:
定义Annotation的保存范围
RetentionPolicy变量的3个范围
SOURCE:此Annotation类型的信息只会保留在程序源文件(*.java)中,编译之后不会保存在编译好的类文件(*.class)中
CLASS:此Annotation类型的信息保留在程序源文件(*.java)和编译好的类文件(*.class)中。在使用此类时,这些Annotation信息将不会被加载到虚拟机(jvm)中,如果一个Annotation声明时没有指定范围,则默认此范围
RUNTIME:此Annotation类型的信息保留在程序源文件(*.java)和编译好的类文件(*.class)中,在执行时也会加载到jvm中
@Target:
明确指出一个Annatation的使用位置
ANNOTATION:只能用在注释的声明上
CONSTRUCTOR:只能用在构造方法的声明上
FIELD:只能用在字段的声明(包括枚举常量)上
LOCAL_VARIABLE:只能用在局部变量的声明上
METHOD:只能用在方法的声明上
PACKAGE:只能用在包的声明上
PARAMETER:只能用在参数的声明上
TYPE:只能用在类、接口、枚举类型上
@Documented:
此Annotation在生成java doc时就可以加入类或方法的一些说明信息
@Inherited:
用于标识一个父类的注释是否可以被子类所继承