我是靠谱客的博主 高兴钢铁侠,最近开发中收集的这篇文章主要介绍[java8新特性]可重复注解,类型注解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

可重复注解

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新特性]可重复注解,类型注解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部