• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

JDK8新特性之重复注解

技术杂谈 勤劳的小蚂蚁 3个月前 (02-04) 69次浏览 已收录 0个评论 扫描二维码


什么是重复注解

下面是JDK8中的重复注解( java.lang.annotation.Repeatable)定义的源码。
  1. @Documented
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Target(ElementType.ANNOTATION_TYPE)
  4. public@interfaceRepeatable{
  5.    Class<?extendsAnnotation> value();
  6. }
重复注解,即一个注解可以在一个类、方法或者字段上同时使用多次,如Spring中可以使用多个扫描组件来扫描多个包的注解。
  1. @ComponentScan
  2. @ComponentScan
  3. publicclassConfiguration{
  4. }
ComponentScan
  1. @Retention(RetentionPolicy.RUNTIME)
  2. @Target(ElementType.TYPE)
  3. @Documented
  4. @Repeatable(ComponentScans.class)
  5. public@interfaceComponentScan{
ComponentScans
  1. @Retention(RetentionPolicy.RUNTIME)
  2. @Target(ElementType.TYPE)
  3. @Documented
  4. @Repeatable(ComponentScans.class)
  5. public@interfaceComponentScan{
  6. ...

重复注解实现

下面来演示下重复注解的实现。
  1. publicstaticvoid main(String[] args){
  2.    for(Token token :UserToken.class.getAnnotationsByType(Token.class)){
  3.        System.out.println(token.value());
  4.    }
  5. }
  6. @Target(ElementType.TYPE)
  7. @Retention(RetentionPolicy.RUNTIME)
  8. public@interfaceTokens{
  9.    Token[] value();
  10. }
  11. @Target(ElementType.TYPE)
  12. @Retention(RetentionPolicy.RUNTIME)
  13. @Repeatable(Tokens.class)
  14. public@interfaceToken{
  15.    String value();
  16. }
  17. @Token("666666")
  18. @Token("888888")
  19. publicinterfaceUserToken{
  20. }
输出结果:
  1. 666666
  2. 888888


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:JDK8新特性之重复注解
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00