JDK8新特性之重复注解
转载自 JDK8新特性之重复注解
什么是重复注解
下面是JDK8中的重复注解( java.lang.annotation.Repeatable
)定义的源码。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Repeatable {Class<? extends Annotation> value();
}
重复注解,即一个注解可以在一个类、方法或者字段上同时使用多次,如Spring中可以使用多个扫描组件来扫描多个包的注解。
@ComponentScan
@ComponentScan
public class Configuration{}
ComponentScan
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Repeatable(ComponentScans.class)
public @interface ComponentScan {
ComponentScans
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Repeatable(ComponentScans.class)
public @interface ComponentScan {
...
重复注解实现
下面来演示下重复注解的实现。
public static void main(String[] args) {for (Token token : UserToken.class.getAnnotationsByType(Token.class)) {System.out.println(token.value());}
}@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Tokens {Token[] value();
}@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Tokens.class)
public @interface Token {String value();
}@Token("666666")
@Token("888888")
public interface UserToken {
}
输出结果:
666666
888888
JDK8新特性之重复注解相关推荐
- java8 重复注解_Java8新特性_重复注解与类型注解
1.总结 1.忘记注解上该写什么时,可以随意写一个注解然后点击进去参考.复制 2.默认情况下不支持重复注解,需要定义容器 3.标注注解为@Repeatable 4.若需要获取注解的值,可以通过反射获取 ...
- JDK8新特性:Lambda表达式、Stream流、日期时间工具类
重要特性: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号. 可选的大括号:如果主体包含了一个语句,就不需要大括号. ...
- Java 8 新特性:扩展注解(类型注解和重复注解)
转载自 Java 8 新特性:扩展注解(类型注解和重复注解) (注:先回顾下JDK1.5版本出现的注解 ,然后再解释JDK 8的注解 更新内容.) 一.注解(JDK1.5) 1.注解(@): 注解就 ...
- 反射、注解、动态代理、JDK8新特性
反射.注解.动态代理.JDK8新特性 第一章.反射 1.类的加载 源文件--通过javac编译-->字节码文件---通过Java命令(通过ClassLoader)--->JVM运行字节码文 ...
- Java番外篇2——jdk8新特性
Java番外篇2--jdk8新特性 1.Lambda 1.1.无参无返回值 public class Test {interface Print{void print();}public static ...
- JDK8新特性知识点总结
一个简洁的博客网站:http://lss-coding.top,欢迎大家来访 学习娱乐导航页:http://miss123.top/ 1. Open JDK 和 Oracle JDK Java 由 S ...
- 【JavaSE之JDK8新特性】三万字详文带你了解JDK8新特性
JDK8新特性 一.Lambda 1.1需求分析 2.Lambda表达式的初级体验 3.Lambda表达式的语法规则 3.1.Lambda练习1 3.2.Lambda表达式练习2 4.Function ...
- JDK8新特性详解Lambda、StreamAPI、Optional等
JDK8学习笔记 学习视频地址:https://www.bilibili.com/video/BV1k64y1R7sA 操作代码:https://gitee.com/rederic/study-jdk ...
- 集合框架,JDK8新特性
一.集合框架 1.为什么会有集合? 集合和数组都是java中提供的可以用来存储多个数据的一种容器.由于数组类型特点是存储同一类型的元素且长度固定,可以存储基本数据类型值.为了满足现实需求, Java中 ...
最新文章
- 教育部发文35所高校新增AI本科专业!想回去重新高考
- Linux内核移植之一:内核源码结构与Makefile分析
- MongoDB 基础用法及学习笔记
- mc网站服务器设置家怎么圈地,《我的世界》怎么圈地 设置方法教程
- pmp每日三题(2022年3月4日)
- Android App图片轮播效果的组件化
- 【笔记】Linux的目录配置(a2)
- C++语言中std::array的神奇用法总结,你需要知道!
- Pandas period_range
- 7.高性能MySQL --- MySQL 高级特性
- 黑客是怎样买彩票的?
- 破解电视盒 运营商送的,各种型号。通用 TTL 破解电视盒,更新华为悦盒
- Linux查看文件数量
- 三星note3smn9005怎么放SIM卡
- OWASP十大漏洞之一
- cad转pdf格式怎么设置线宽
- “海外围猎场”里的中国游戏玩家
- DNS服务器IP地址大全
- 第十八篇:融汇贯通--谈USB Video Class驱动
- unimrcp 实现阿里云的plugin