Java元注解

原创 2015年11月20日 20:02:19

1.何为元注解?

元注解(meta-annotation)就是注解的注解。

2.有哪些元注解?

Java有四个元注解 @Retention @Target @Document @Inherited;

@Retention

表示注解被保留的程度:源码,CLASS文件,运行时。

需要配合注释修饰符RetentionPolicy使用。

源码:

package java.lang.annotation;

/**
 * @since 1.5
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    RetentionPolicy value();
}

@Target 

注解的合法作用对象,需要结合修饰符ElementType来使用。

例如Element.METHOD修饰的注解,就只能用在方法上,如果用在了类上,就会报错。

所以我们看到四个元注解的Target都是@Target(ElementType.ANNOTATION_TYPE),表示作用在注解上。

源码:

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    ElementType[] value();
}


@Document

表示被注解的内容会出现在javadoc中,即javadoc中会包含该注解。

源码:

package java.lang.annotation;

/**
  * @author  Joshua Bloch
 * @since 1.5
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {
}


@Inherited

表示子类可以继承父类中的该注解(该注解是注解于父类)

源码:

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

3.注解修饰符


在上面的四个元注解中,存在两个注解修饰元素。RetentionPolicy和ElementType

RetentionPolicy:指的是注解的保留程度。

@Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)   //默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得
@Retention(RetentionPolicy.RUNTIME)// 注解会在class字节码文件中存在,在运行时可以通过反射获取到

ElementType:指的是注解的作用目标。

@Target(ElementType.TYPE)   //接口、类、枚举、注解
@Target(ElementType.FIELD)  //字段、枚举的常量
@Target(ElementType.METHOD)  //方法
@Target(ElementType.PARAMETER)  //方法参数
@Target(ElementType.CONSTRUCTOR)   //构造函数
@Target(ElementType.LOCAL_VARIABLE) //局部变量
@Target(ElementType.ANNOTATION_TYPE) //注解
@Target(ElementType.PACKAGE)  //




版权声明:原创文章,转载请注明出处。

java四种元注解

在jdk1.5引进了注解的,有许多框架都使用了注解,例如spring,hibernate.现将其简单介绍一下 元注解:注解的注解,即java为注解开发特准备的注解。 在java中有四种元注解1.@...
  • qq_32371887
  • qq_32371887
  • 2017年06月01日 16:56
  • 425

java四个元注解的作用

四个元注解分别是:@Target,@Retention,@Documented,@Inherited ,再次强调下元注解是java API提供,是专门用来定义注解的注解,其作用分别如下:    ...
  • Melody_Susan
  • Melody_Susan
  • 2015年08月28日 11:37
  • 5100

java注解中的4种元注解+自定义注解入门

【0】README 0.1)以下内容转自: http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 0.2)本文主要对 4种元注解(@...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016年02月22日 22:40
  • 1309

Java自定义注解和元注解

自定义annotation先看一个注解实例:import java.lang.annotation.Documented; import java.lang.annotation.ElementTyp...
  • qwe6112071
  • qwe6112071
  • 2016年03月21日 19:52
  • 1699

Java内置系统注解和元注解

第一节:注解(Annotation)的作用        Annotation(注解)是JDK5.0及以后版本引入的。它的作用是修饰程序元素。什么是程序元素呢?例如:包、类、构造方法、方法、成员变量...
  • u014207606
  • u014207606
  • 2016年08月23日 16:18
  • 2383

组合注解和元注解

元注解:可以注解到别的注解上的注解。 组合注解:被元注解 注解的注解称为组合注解,组合注解具备元注解的功能。 Spring很多注解都可以作为元注解,而且Spring本身已经有很多组合注解,如@Co...
  • xiaolyuh123
  • xiaolyuh123
  • 2017年03月27日 10:48
  • 413

【Spring】Spring高级话题-组合注解与元注解

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 分析 所谓的元注解: 其实就是可以注解到别的注解上的注解。 而被注解的注解我们就...
  • qq_26525215
  • qq_26525215
  • 2016年12月08日 20:53
  • 1973

java元注解

java元注解 元注解作用是负责注解其他注解,java5.0定义了四个标准的元注解。包括:@Target、@Documented、@Retention、@Inherit。 @Target注...
  • x1066988452
  • x1066988452
  • 2017年02月20日 18:37
  • 340

java元注解详解及自定义注解的方法

什么是注解注解相当于一种标记,开发工具、编译器、JVM可以通过反射来了解类和元素有没有注解, 然后去做出相应的操作。 例如 重写方法时加上@Override注解,编译器就会检查该方法有没有正确的覆...
  • infoflow
  • infoflow
  • 2017年09月29日 00:48
  • 185

java的元注解

java中元注解有四个: @Retention @Target @Document @Inherited;    @Retention:注解的保留位置                @Retent...
  • qq_27493017
  • qq_27493017
  • 2017年08月20日 18:06
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java元注解
举报原因:
原因补充:

(最多只允许输入30个字)