- TYPE_PARAMETER
表示该注解能写在类型变量的声明语句中
这里的类型变量可以是基本类型变量,也可以是引用类型变量 eg:泛型声明(泛型就是一个类,所以泛型声明就是一种引用类型变量的声明) TYPE_USE
表示该注解可以写在任何使用类型(基本数据类型和引用数据类型)的语句中
eg::
首先我们先创建一个类型注解:
package 注解.类型注解;
import java.lang.annotation.*;
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.PARAMETER,ElementType.TYPE_PARAMETER,ElementType.TYPE_USE})
public @interface MyAnnotation {
String value() default "hello";
}
然后我们再来测试我们创建的这个类型注解:
package 注解.类型注解;
import java.util.ArrayList;
public class Demo<@MyAnnotation T> {
public void show()throws @MyAnnotation RuntimeException{
ArrayList<@MyAnnotation String> arrayList = new ArrayList<>();
int x = (@MyAnnotation int)102.1;
}
}


![类型注解 [Java] 类型注解 [Java]](http://www.mshxw.com/aiimages/31/750202.png)
