Java8新特性探究(5):重复注解

 什么是重复注解

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

一个简单的例子

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

 
 
  1. public @interface Authority {  
  2.      String role();  
  3. }  
  4.  
  5. public @interface Authorities {  
  6.     Authority[] value();  
  7. }  
  8.  
  9. public class RepeatAnnotationUseOldVersion {  
  10.       
  11.     @Authorities({@Authority(role="Admin"),@Authority(role="Manager")})  
  12.     public void doSomeThing(){  
  13.     }  
  14. }  

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

 
 
  1. @Repeatable(Authorities.class)  
  2. public @interface Authority {  
  3.      String role();  
  4. }  
  5.  
  6. public @interface Authorities {  
  7.     Authority[] value();  
  8. }  
  9.  
  10. public class RepeatAnnotationUseNewVersion {  
  11.     @Authority(role="Admin")  
  12.     @Authority(role="Manager")  
  13.     public void doSomeThing(){ }  
  14. }  

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

总结

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

原文链接:http://my.oschina.net/benhaile/blog/180932

网站名称:Java8新特性探究(5):重复注解
路径分享:http://www.mswzjz.cn/qtweb/news1/359651.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能