元注解

元注解

感情迁移 提交于 2021-01-07 02:57:14
1、java.lang.annotation包下的4个元注解,修饰其他注解 @Target , @Retention , @Documented , @Inherited 2、@Target注解,用于指定被修饰的注解能修饰哪些程序元素(value为以下8种类型) 2.1 ElementType.ANNOTATION_TYPE 注解声明 2.1 ElementType.CONSTRUCTOR 构造方法声明 2.1 ElementType.FIELD 成员变量声明 2.1 ElementType.LOCAL_VARIABLE 局部变量声明 2.1 ElementType.METHOD 方法声明 2.1 ElementType.PACKAGE 包声明 2.1 ElementType.PARAMETER 参数声明 2.1 ElementType.TYPE 类、接口、枚举声明 3、@Retention注解,指定被修饰的注解可以保留多长时间(vlaue为以下3种类型) 3.1 RetentionPolicy.CLASS 编译器把注解记录在CLASS文件中,当程序运行时,java虚拟机不再保留注解 3.2 RetentionPolicy.RUNTIME 可以通过反射访问注解 3.3 RetentionPolicy.SOURCE 编译器直接丢弃被修饰的注解 4、@Documented注解

元注解及注解的自定义

可紊 提交于 2021-01-07 02:20:43
Annotation(注解)是JDK5.0及以后版本引入的。它的作用是修饰编程元素。什么是编程元素呢?例如:包、类、构造方法、方法、成员变量等。 元注解就是修饰注解的注解 。 注解是JDK 5.0推出来的,这部分JDK源码的作者是:Joshua Bloch(《Effective Java》的作者)。 注解的定义 (1)以@interface关键字定义 (2)注解包含成员,成员以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名字和类型。 (3)成员赋值是通过@Annotation(name=value)的形式。 (4)注解需要标明注解的生命周期,注解的修饰目标等信息,这些信息是通过元注解实现。 @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.ANNOTATION_TYPE) public @interface Controller { ElementType value(); } 分析: 元注解@Documented Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 元注解@Retention定义注解的生命周期,成员value的值为RetentionPolicy.RUNTIME。 RetentionPolicy

注解(Annotation)自定义注解入门

荒凉一梦 提交于 2019-11-28 09:43:47
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。 元注解:   元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:     1. @Target ,     2.@Retention,     3.@Documented,     4.@Inherited   这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。    @Target:    @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。     作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)    取值(ElementType)有:     1.CONSTRUCTOR:用于描述构造器     2.FIELD:用于描述域