自定义注解

旧城等待, 2022-10-09 03:11 288阅读 0赞

#

1、简单介绍注解

注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

2、举例说明如何定义注解

  1. @Target({ElementType.TYPE})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Documented
  4. public @interface Component {
  5. String value() default "";
  6. }

注解类使用 @interface 关键字修饰,且在注解类上方声明注解相关信息,包含以下四种信息

(1)@Target:用于描述注解的使用范围(注解可以用在什么地方)

ElementType.CONSTRUCTOR: 用于描述构造器

ElementType.FIELD: 成员变量、对象、属性(包括enum实例)

ElementType.LOCAL_VARIABLE: 用于描述局部变量

ElementType.METHOD: 用于描述方法

ElementType.PACKAGE: 用于描述包

ElementType.PARAMETER: 用于描述参数

ElementType.TYPE: 用于描述类、接口(包括注解类型) 或enum声明

(2)@Retention:注解的生命周期,用于表示该注解会在什么时期保留。

RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。

RetentionPolicy.CLASS : 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式。

RetentionPolicy.RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。

(3)@Documented:一个简单的Annotations 标记注解,表示是否将注解信息添加在java 文档中

(4)@Inherited – 定义该注释和子类的关系

  @Inherited 元注解是一个标记注解,@Inherited 阐述了某个被标注的类型是被继承的。

  如果一个使用了@Inherited 修饰的annotation 类型被用于一个class,则这个annotation

将被用于该class 的子类。

发表评论

表情:
评论列表 (有 0 条评论,288人围观)

还没有评论,来说两句吧...

相关阅读

    相关 定义注解

    1、简单介绍注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明

    相关 定义注解

    什么是注解?         从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加

    相关 定义注解

             注解是一种元数据形式,即注解是属于java的一种数据类型,和类、接口、数组、枚举类似。注解用来修饰,类、方法、变量、参数、包。注解不会对所修饰的代码产生直接的