**

Repeatable使用场景:

**
当我们需要重复使用某个注解时,希望利用相同的注解来表现所有的形式时,我们可以借助@Repeatable注解。

**

实例

**
在生活中一个人往往是具有多种身份,可以用注解来表示其中每一种身份。
先声明一个Persons注解来声明包含所有的身份

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public   @interface Persons {Person[] value();
}

这里@Target注解声明Persons的作用范围,参数ElementType.Type表示可以给一个类型进行注解,比如类,接口,枚举,注解。

@Retention是注解的有效时间,RetentionPolicy.RUNTIME是指注解可以保留到程序运行的时候,它会被加载进入 JVM 中,在程序运行时可以获取到它们。

Person注解

@Repeatable(Persons.class)
public  @interface Person{String role() default "";
}

@Repeatable括号内的Persons.class相当于用来保存该注解内容的容器。

创建一个Man类,给Man类添加一些身份(加上多个Person注解)


@Person(role="CEO")
@Person(role="husband")
@Person(role="father")
@Person(role="son")
public   class Man {String name="";
}

主方法中访问该注解,获取关于Man类的Person注解的信息

public static void main(String[] args) {Annotation[] annotations = Man.class.getAnnotations();  System.out.println(annotations.length);Persons p1=(Persons) annotations[0];for(Person t:p1.value()){System.out.println(t.role());}}

运行结果:

1
CEO
husband
father
son

Java注解 @Repeatable相关推荐

  1. Java注解——Repeatable

    Repeatable使用场景: 在需要对同一种注解多次使用时,往往需要借助@Repeatable. 实例: 在生活中一个人往往是具有多种身份,如果我把每种身份当成一种注解该如何使用??? 先声明一个P ...

  2. java注解(Annotation)-Repeatable实战

    Java 预定义注解 Java 支持一组预先定义好的注解.下面介绍了Java Core 中提供的注解 @Retention: 该注解用来修饰其他注解,并标明被修饰注解的作用域.其 value 的属性值 ...

  3. java:@Repeatable注解使用

    java:@Repeatable注解使用 1 前言 java8新增了注解@Repeatable,在hibernate-validator的源码注解如@MAX.@NotNull等中,有@Repeatab ...

  4. java 元注解 @Repeatable

    目录 一 笔记 二 自定义注解容器Persons 三 自定义的注解AnnotationTest08_Person ,即可重复使用的注解 四 通过反射机制获取重复注解的信息 一 笔记 元注解 @Repe ...

  5. Java注解---通俗易懂

    本文转载于Java注解-最通俗易懂的注解 Annotation 中文译过来就是注解.标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解. 我个人认为,比较糟糕的技术文 ...

  6. Java注解库_Java 注解详解

    本文部分摘自 On Java 8 基本语法 注解是 Java 5 所引入的众多语言变化之一,是附加在代码中的一些元信息,用于一些工具在编译.运行时进行解析和使用,起到说明.配置的功能.注解不会也不能影 ...

  7. Java 注解深入理解

    内容概要 Annotation的概念 Annotation的作用 Annotation的分类 系统内置注解 元注解 自定义注解 解析注解信息 JDK8注解新特性 附:项目源码地址 一.Annotati ...

  8. java指导手册,Java 注解指导手册 – 终极向导

    编者的话:注解是java的一个主要特性且每个java开发者都应该知道如何使用它. 现在,是时候汇总这些和注解相关的信息到一篇文章了,祝大家阅读愉快. 目录 什么是注解 介绍 消费器 注解语法和注解元素 ...

  9. java 注解 id_java注解

    java注解: Java 注解用于为 Java 代码提供元数据.作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的.Java 注解是从 Java5 开始添加到 Java ...

最新文章

  1. 网络计算机统考报名网,2017年《计算机应用基础》统考试题及答案
  2. @Autowired与@Resource的区别
  3. matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...
  4. JavaScript中创建对象的方法
  5. Quadratic equation(二次剩余)2019牛客多校第九场
  6. Py函数直接传入root是啥意思_Python内部函数——用处何在?
  7. 同样学软件测试,为什么有些人一面试就拿一堆大厂offer?
  8. android intent json,如何从android中的Intent服务中的服务器获取Json响应?
  9. 代码高亮_安卓集成代码高亮显示开源包
  10. 最简短的加入收藏代码
  11. html中对应Word中的字体和字号
  12. 计算机专业及相关知识测试,计算机知识及测验考试.doc
  13. DWG文件不大,打开却慢的要死?
  14. 将全部视频画面水平或者垂直翻转的实例教程分享
  15. [论文学习]Learn to Dance with AIST++: Music Conditioned 3D Dance Generation
  16. hexo+yilia添加复制代码块的功能
  17. 唐朝诡事录之西行官宣
  18. QT中的Singal\slot机制
  19. 字节跳动校招编程题——特征提取 python
  20. 头条项目推荐的相关技术(一): 数据库的迁移与定时迁移技术

热门文章

  1. 互联网与神经学的交叉对比研究
  2. 2015创业邦年会大佬精彩观点集锦
  3. 创e专访 | 闪马智能CEO彭垚:让创业“燥”起来
  4. windows系统下安装虚拟机-mac系统-视频教程
  5. KMP的Next数组应用总结
  6. (2019, StyleGAN)用于 GAN 的基于样式的生成器架构
  7. css伪元素实现下划线
  8. centosyum安装netdata
  9. 硅上量子点激光器报告最新进展总结(一)
  10. word文件做一半未响应_Win7的word为什么老是出现未响应?