注解是可以被编译器读取的注释,可以通过反射实现对注解数据的访问
元注解
元注解的作用就是负责注解其他注解,共四个
@Target,@Retention,@Documented,@Inherited
@Target
用来描述注解的使用范围,(package,class,method,field)
@Retention
表示需要在什么级别保存该注释信息,用语描述注解的生命周期(SOURCE<CLASS<
RUNTIME
)
- @Document
说明该注解将被包含在javadoc中
- @Inherited
说明子类可以
继承
父类中的该注解
自定义注解
- 使用方式
1、使用@interface生命一个注解,格式:
public @interface 注解名{注解内容}
2、每一个方法就是一个注解参数,方法名就是参数名,返回值类型就是参数类型,且只能是String、Class、enum;
3、注解元素必须要有值,可以用default来声明默认参数,一般用空字符串或0作为默认值
4、如果只有一个参数,参数名一般为value
5、使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口
- 实例
// 使用自定义注解
public class MyAnnotation {
// 注解可以显示复制,如果没有默认值,则必须要手动复制
@MyAnnotation1
public void test(){};
}
// 定义注解
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation1{
// 注解的参数:参数类型 + 参数名();
String name() default "";
int age() default 0;
String[] schools() default {"清华大学","北京大学"};
}
网友评论