JDK8新特性之重复注解
2024-08-23 13:56:16
什么是重复注解
下面是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
推荐阅读
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。
最新文章
- iSight集成Adams/View:Adams组件
- linux 僵死进程
- ps,Photoshop
- Catalyst揭秘 Day1 Catalyst本地解析
- ServerRelativeUrl与Url
- Kooboo中怎么新增一个关联的Details 动态页面。
- Adding the Test API in The ASP.NET Web API Help Page
- Hibernate 使用说明
- Flash与DIV的层叠顺序问题
- Java的一些基础小知识之JVM与GC (转)
- MySQL5.7解压版详细安装教程,在最后一步需要随机密码
- deepin系统下如何设置wifi热点(亲测有效)
- Swift学习之元组(Tuple)
- jsp文件调用本地文件的方法(Tomcat server.xml 设置虚拟目录)
- wordpress 图片上传冲突
- 学 shell (1/5)
- hadoop fs 获取文件大小
- python 基础_ 打印输出 循环分支2
- Symbol 实现属性私有化的方式
- apache2.2控制目录文件访问设置
热门文章
- 2019ccpc网络赛hdu6703 array(线段树)
- 线程组,action to be taken after a sampler error
- 对 HTTP HTTPS的认识
- Eclipse国内下载升级方法
- Java中File类创建文件
- ReactOS 代码更新后的编译安装
- servlet的ServletConfig接口
- ionic node-sass安装或编译失败:MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”
- java输入一个整数N,打印1~n位数
- TCP三次挥手