java注解是jdk1.5以后新出的特性,注解提升了Java语言的表达能力,有效地实现了应用功能和底层功能的分离,框架/库的程序员可以专注于底层实现。
自定义注解
Java提供了一些定义好的注解如@SuppressWarnings、@Override等。也可以借助元注解来自定义注解,其格式示例如下:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) @Documented @Inherited public @interface Mark { }
四个元注解:
@Target指定注解的应用目标,如@Target(ElementType.METHOD),没有指定时默认为适用于所有目标。目标是个枚举值ElementType,可以是:
- TYPE:表示类、接口(包括注解),或者枚举声明
- FIELD:字段,包括枚举常量
- METHOD:方法
- PARAMETER:方法中的参数
- CONSTRUCTOR:构造方法
- LOCAL_VARIABLE:本地变量
- ANNOTATION_TYPE:注解类型
- PACKAGE:包
目标可以是多个,用{}表示,如@Target({TYPE, FIELD, METHOD, PARAMETER}),如果没有声明@Target,默认为适用于所有类型。