TYPE_PARAMETER和TYPE_USE 在JDK1.8中ElementType多了两个枚举成员,TYPE_PARAMETER和TYPE_USE,他们都是用来限定哪个类型可以进行注解。举例来说,如果想要对泛型的类型参数进行注解: public class AnnotationTypeParameter<@TestTypeParam T> {} 那么,在定义@TestTypeParam时,必须在@Target设置ElementType.TYPE_PARAMETER,表示...
6.TYPE:标明该注解可以用于类、接口(包括注解类型)或enum声明; 7.LOCAL_VARIABLE:标明注解可以用于局部变量声明; 8.ANNOTATION_TYPE:标明注解可以用于注解声明(应用于另一个注解上); 9.TYPE_PARAMETER:标明注解可以用于类型参数声明(1.8新加入); 10.TYPE_USE:类型使用声明(1.8新加入); @Retention:用来约束注解的生...
ElementType是一个枚举类,它用来指定Annotation的类型,表明Annotation可以用在什么地方 例如,TYPE表示这个Annotation可以用在类/接口/Annotation或者枚举上,CONSTRUCTOR表示它可以用于构造器上,METHOD表示可以用来修饰方法 需要注意的一点是,一个Annotation可以与多个ElementType关联 TYPE_PARAMETER/TYPE_USE是JDK1.8的新特性,它代表...
package annotation1; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String name() default "gdb"; ...
1. ElementType.ANNOTATION_TYPE 应用于一个注解类型 2. ElementType.CONSTRUCTOR 应用于构造函数 3. ElementType.FIELD 应用于类的属性 4. ElementType.LOCAL_VARIABLE 应用于局部变量 5. ElementType.METHOD 应用于方法 6. ElementType.PACKAGE 应用于包 7. ElementType.PARAMETER 应用于方法的参数 ...
二、注解Annotation源码 Annotation接口源码: package java.lang.annotation; /** * The common interface extended by all annotation types. Note that an * interface that manually extends this one does not define * an annotation type. Also note that this interface does not itself * define an...
annotation语法允许在annotation名后跟括号,括号中是使用逗号分割的name=value对用于为annotation的成员赋值: 代码: @SuppressWarnings(value={"unchecked","fallthrough"}) public void lintTrap() { /* sloppy method body omitted */ } 1. 2. 3.
ElementType.PARAMETER:能修饰参数 ElementType.CONSTRUCTOR:能修饰构造器 ElementType.LOCAL_VARIABLE:能修饰局部变量 ElementType.ANNOTATION_TYPE:能修饰注解 ElementType.PACKAGE:能修饰包 示例1(单个ElementType): package com.demo1;import java.lang.annotation.ElementType;import java.lang.annotation.Target;@Target(Element...
ElementType.ANNOTATION_TYPE:修饰注解 ElementType.PACKAGE:修饰包 ElementType.TYPE_PARAMETER:修饰类型参数(Java8 新增) ElementType.TYPE_USE:修饰任何类型(Java8 新增) @Inherited @Inherited:指定注解具有继承性。但是它并不是说注解本身可以继承,而是说如果一个超类被 @Inherited 注解过的注解进行注解的话,那么如果它...
@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})@Retention(RetentionPolicy.SOURCE)public@interfaceSuppressWarnings{String[]value();} 注解与反射机制 前面经过反编译后,我们知道Java所有注解都继承了Annotation接口,也就是说 Java使用Annotation接口代表注解元素,该接口是所有Annotation类型的父接口。同时...