Java 8新特性探究(五)重复注解(repeating annotations)
来源:互联网 发布:程序员是吃青春饭吗 编辑:程序博客网 时间:2024/05/16 15:01
知识回顾
前面介绍了:
lambda表达式和默认方法 (JEP 126)
批量数据操作(JEP 107)
类型注解(JEP 104)
注:JEP=JDK Enhancement-Proposal (JDK 增强建议 ),每个JEP即一个新特性。
在java 8里面,注解一共有2个改进,一个是类型注解,在上篇已经介绍了,本篇将介绍另外一个注解的改进:重复注解(JEP 120)。
什么是重复注解
允许在同一申明类型(类,属性,或方法)的多次使用同一个注解。
一个简单的例子
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),相信注解会比以前使用得更加频繁了。
原文链接:http://my.oschina.net/benhaile/blog/180932
0 0
- Java 8新特性探究(五)重复注解(repeating annotations)
- Java 8新特性探究(五):重复注解(repeating annotations)
- JDK8新特性:重复注解Repeating Annotations
- Java 8新特性探究(二)类型注解和重复注解
- Java 8新特性探究(五)Base64详解
- Java 8新特性探究(五)Base64详解
- Java 8新特性探究(四)类型注解 复杂还是便捷
- Java 8新特性探究(四):类型注解 ,复杂还是便捷?
- Java 8新特性探究(十二)Nashorn :新犀牛
- Java 8新特性探究(十二)Nashorn :新犀牛
- Java 8 新特性:扩展注解(类型注解和重复注解) ——诺诺"涂鸦"记忆
- Java 8新特性探究(十一)Base64详解
- Java 8新特性探究(十一): Base64详解
- Java 8新特性#可重复的注解
- Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏
- Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏
- Java 8新特性探究(十三):JavaFX 8新特性以及开发2048游戏
- Java 1.5 新特性Annotations
- 大牛们的博客和IT网站
- Fanwe 方维多语商城建站系统接入手机短信功能--支持注册验证、订单通知等
- 读书笔记_Java程序性能优化_Chap1.概述
- 数据库建表技巧
- MESI-CPU缓存一致性协议
- Java 8新特性探究(五)重复注解(repeating annotations)
- UIWebView---UIWebView实现离线浏览
- 二维的完全背包
- 七牛qboxrsctl 部分使用的shell命令
- View 绘制流程
- WCF中配置文件解析
- 兼容sdk7&iOS7的issue解决小片段总结
- 路由汇聚与子网划分应用题
- 整型,字符型,字符串型双重快排