0%

元注解

负责注解其他注解的注解,即对我们自定义的注解类型进行注解。

什么是元注解?

元注解的作用是负责注解其他注解,java定义了4个标志的meta-annotation类型,他们被用来提供对其他annotation类型作说明。这些类型和它们所支持的类在java.lang.annotation包中可以找到。

  • @Target:描述注解的使用范围(包、类、方法、域。。。)(注解可以用在什么地方)
  • @Retention:表示需要在什么级别保存该注解信息(源码source < 类文件class < 运行时Runtime)
  • @Document:说明该注解被包含在javaDoc中
  • @Inherited:说明子类可以继承分类中的该注解

自定义注解

自定义注解详细介绍见:传送门

自定义注解使用@interface,格式: public @interface 注解名{ 定义内容 }

1
2
3
public @interface MyAnnotation{

}

Target

@Target:描述注解的使用范围(包、类、方法、域。。。)(注解可以用在什么地方)

1
2
3
4
5
6
//定义一个注解
//Target 表示我们的注解可以用在什么地方(TYPE:类、接口、枚举类型;METHOD:方法
@Target(value = ElementType.METHOD)
public @interface MyAnnotation{

}

value = ElementType.METHOD,表示注解使用在方法上,当使用在类上时报错:

Retention

@Retention:表示需要在什么级别保存该注解信息(源码source < 类文件class < 运行时Runtime)

一般自定义注解都使用RUNTIME级别(级别最高)

1
2
3
4
5
6
//Retention  表示我们的注解在什么地方有效
//runtime > class > source
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation{

}

Document

@Document:说明该注解被包含在javaDoc中

1
2
3
4
5
//Documented  表示是否将我们的注解生成在javaDoc中
@Documented
public @interface MyAnnotation{

}

Inherited

@Inherited:说明子类可以继承分类中的该注解

1
2
3
4
5
//Inherited  子类可以继承父类的注解
@Inherited
public @interface MyAnnotation{

}
若图片不能正常显示,请在浏览器中打开

欢迎关注我的其它发布渠道