概述
可重复注解
JDK8之前实现重复注解
public @interface MyAnnotation {
String value() default
"";
}
@interface
MyAnnotations{
MyAnnotation[] value();
}
@MyAnnotations({@MyAnnotation(),@MyAnnotation})
class Test{
}
JDK8新增了@Repeatable()元注解
import java.lang.annotation.Repeatable;
@Repeatable(MyAnnotations.class)
public @interface MyAnnotation {
String value() default
"";
}
@interface
MyAnnotations{
MyAnnotation[] value();
}
@MyAnnotation()
@MyAnnotation()
class Test{
}
类型注解
JDK8之后,关于元注解@Target的参数类型ElementType枚举值多了两个: TYPE_PARAMETER,TYPE_USE
在JDK8之前,注解只能是在声明的地方所使用,JDK8开始,注解可以应用在任何地方
ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中(如:泛型声明)
ElementType.TYPE_USE 表示该注解能写在使用类型的任何语句中
API
public enum ElementType {
TYPE,
FIELD,
METHOD,
PARAMETER,
CONSTRUCTOR,
LOCAL_VARIABLE,
ANNOTATION_TYPE,
PACKAGE,
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
}
代码验证
TYPE_PARAMETER
@Target(ElementType.TYPE_PARAMETER)
public @interface MyAnnotation {
String value() default
"";
}
class Test<@MyAnnotation() T>{
}
TYPE_USE
@Target(ElementType.TYPE_USE)
public @interface MyAnnotation {
String value() default
"";
}
class Test{
public void test() throws @MyAnnotation() Exception{
List<@MyAnnotation() String> list = new ArrayList<>();
int i=(@MyAnnotation() int)
10d;
}
}
最后
以上就是高兴钢铁侠为你收集整理的[java8新特性]可重复注解,类型注解的全部内容,希望文章能够帮你解决[java8新特性]可重复注解,类型注解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复