概述
今天是高考的日子,是大四师兄师姐答辩毕业的日子。一代又来,一代又去。好久没写博客,借此特殊日子整理一下前不久学java8新特性时写的代码,留下痕迹。(本博客的代码根据 java8新特性教程 学习整理,加上个人的理解而成,关于某个新特性的介绍代码里的注释已经阐述清楚,故不再写文字介绍,直接看代码吧!)
本篇介绍java8的新特性之一:可重复注解。
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Target;
/**
* Java8中的Annotations是可重复。
*/
public class RepeatableAnnotation {
public static void main(String[] args) {
//虽然我们从来没有在类Chinese上声明@Hints注解,但该信息还是可以通过getAnnotation(Hint.class)获得。
Hint hint = Chinese.class.getAnnotation(Hint.class);
System.err.println(hint);
//java编译器隐式的在该注解使用中加入@Hints。这种后期处理在通过反射获取注解是十分重要的。
Hints hints = Chinese.class.getAnnotation(Hints.class);
System.err.println(hints.value().length);
Hint[] arr = hints.value();
for(Hint h : arr){
System.err.println(h);
}
//getAnnotationsByType是一种更加便利的方法,它可以保证我们访问所有使用的@Hint注解。
Hint[] hints2 = Chinese.class.getAnnotationsByType(Hint.class);
System.err.println(hints2.length);
}
}
@Repeatable(Hints.class)
@interface Hint{
String value();
}
@interface Hints{
Hint[] value();
}
//使用容器注解
@Hints({@Hint("hint1"),@Hint("hint2")})
class Person{
}
//使用可重复注解
//java编译器隐式的在该注解使用中加入@Hints。这种后期处理在通过反射获取注解是十分重要的。
@Hint("hint1")
@Hint("hint2")
class Chinese{
}
//Java8中注解的使用范围扩展到两种新的类型:TYPE_PARAMETER(Type parameter declaration),TYPE_USE(Use of a type)
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
@interface MyAnnotation {}
详情请见这篇博客: java8新特性教程
最后
以上就是无聊哈密瓜为你收集整理的Java8新特性——可重复注解的全部内容,希望文章能够帮你解决Java8新特性——可重复注解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复