Java8新特性——可重复注解
来源:互联网 发布:医院预约管理系统php 编辑:程序博客网 时间:2024/05/01 07:57
今天是高考的日子,是大四师兄师姐答辩毕业的日子。一代又来,一代又去。好久没写博客,借此特殊日子整理一下前不久学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新特性教程
0 0
- Java8新特性——可重复注解
- Java8学习笔记 — 其它新特性【接口默认方法(静态方法)、重复注解、类型注解】
- Java 8新特性#可重复的注解
- Java8 新特性之四---------重复注解与注解应用拓宽
- JAVA8 创建可重复注解的容器
- 详解Java8特性之重复注解
- Java8新特性——Lambda表达式
- Java8新特性——lambda表达式
- Java8新特性——时间API
- Java8新特性——LocalDate
- Java8新特性——Lambda
- Java8新特性——Stream
- Java8新特性——StreamAPI(一)
- Java8新特性——StreamAPI(二)
- Java8新特性——Optional
- Java8新特性——StreamAPI(一)
- JAVA8新特性——方法引用
- JAVA8新特性——方法引用
- JSP的转义字符
- shell算数表达式运算
- No grammar constraints (DTD or XML schema)
- 动态表单实现客户端二次过滤及字段汇总统计
- UVa live3415Guardian of Decency(二分最大匹配之最大独立点集)
- Java8新特性——可重复注解
- Android常见的错误及解决
- 2862--勾股定理
- java实现Img与PDF相互转换
- memset()函数的应用
- A*算法(转)
- SWF 文件不能访问本地资源
- 利用Robot Framework和Python wrapper of Android uiautomator的Android测试自动化
- Windows应用程序高级控件之ImageList