Java8新特性之重复注解(repeating annotations)浅析

 更新时间:2014年06月09日 11:39:08   作者:  
这篇文章主要介绍了Java8新特性之重复注解(repeating annotations)浅析,这个新特性只是修改了程序的可读性,是比较小的一个改动,需要的朋友可以参考下

一、什么是重复注解

允许在同一申明类型(类,属性,或方法)的多次使用同一个注解

二、一个简单的例子

java 8之前也有重复使用注解的解决方案,但可读性不是很好,比如下面的代码:

复制代码 代码如下:

public @interface Authority {
     String role();
}

public @interface Authorities {
    Authority[] value();
}

public class RepeatAnnotationUseOldVersion {

    @Authorities({@Authority(role="Admin"),@Authority(role="Manager")})
    public void doSomeThing(){
    }
}

由另一个注解来存储重复注解,在使用时候,用存储注解Authorities来扩展重复注解,我们再来看看java 8里面的做法:

复制代码 代码如下:

@Repeatable(Authorities.class)
public @interface Authority {
     String role();
}

public @interface Authorities {
    Authority[] value();
}

public class RepeatAnnotationUseNewVersion {
    @Authority(role="Admin")
    @Authority(role="Manager")
    public void doSomeThing(){ }
}

不同的地方是,创建重复注解Authority时,加上@Repeatable,指向存储注解Authorities,在使用时候,直接可以重复使用Authority注解。从上面例子看出,java 8里面做法更适合常规的思维,可读性强一点

三、总结

JEP120没有太多内容,是一个小特性,仅仅是为了提高代码可读性。这次java 8对注解做了2个方面的改进(JEP 104,JEP120),相信注解会比以前使用得更加频繁了。

相关文章

  • java裁剪图片并保存的示例分享

    java裁剪图片并保存的示例分享

    在这篇文章中我们将学习如何用Java 对图像进行剪裁并将剪裁出来的部分单独保存到文件中
    2014-01-01
  • Mybatis 多对一查询的实现方法

    Mybatis 多对一查询的实现方法

    这篇文章主要介绍了Mybatis 多对一查询,本文通过场景分析示例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • SpringBoot整合FreeMarker的过程详解

    SpringBoot整合FreeMarker的过程详解

    FreeMarker 是一个模板引擎,可以将模板与数据结合生成文本输出,本文给大家介绍SpringBoot整合FreeMarker的过程,感兴趣的朋友一起看看吧
    2024-01-01
  • 微服务链路追踪Spring Cloud Sleuth整合Zipkin解析

    微服务链路追踪Spring Cloud Sleuth整合Zipkin解析

    这篇文章主要为大家介绍了微服务链路追踪Spring Cloud Sleuth整合Zipkin解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Springboot创建项目的图文教程(idea版本)

    Springboot创建项目的图文教程(idea版本)

    这篇文章主要介绍了Springboot创建项目的图文教程(idea版本),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • 使用Java编写串口程序的流程步骤

    使用Java编写串口程序的流程步骤

    本文将介绍如何使用Java编写串口程序,包括串口的基本概念、Java串口通信API的使用、串口程序的开发流程以及一些常见问题的解决方法等,希望通过本文的介绍,读者能够对使用Java编写串口程序有一个基本的了解,并能够实践和应用于实际项目中
    2023-11-11
  • Android bdflow数据库神器的使用

    Android bdflow数据库神器的使用

    这篇文章主要介绍了Android bdflow数据库神器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • javamail 发送邮件的实例代码分享

    javamail 发送邮件的实例代码分享

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题。为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用
    2013-08-08
  • 使用Spring安全表达式控制系统功能访问权限问题

    使用Spring安全表达式控制系统功能访问权限问题

    从spring security 3.0开始已经可以使用spring Expression表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。这篇文章主要介绍了使用Spring安全表达式控制系统功能访问权限,需要的朋友可以参考下
    2019-11-11
  • java 请求跨域问题解决方法实例详解

    java 请求跨域问题解决方法实例详解

    这篇文章主要介绍了java 请求跨域问题解决方法实例详解的相关资料,需要的朋友可以参考下
    2017-04-04

最新评论