在java 8裏面,註解一共有2個改進,一個是類型註解,在上篇已經介紹了,本篇將介紹另一個註解的改進:重複註解(JEP 120)。
java
容許在同一申明類型(類,屬性,或方法)的屢次使用同一個註解 spa
java 8以前也有重複使用註解的解決方案,但可讀性不是很好,好比下面的代碼: .net
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裏面的作法: code
@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裏面作法更適合常規的思惟,可讀性強一點 orm
JEP120沒有太多內容,是一個小特性,僅僅是爲了提升代碼可讀性。此次java 8對註解作了2個方面的改進(JEP 104,JEP120),相信註解會比之前使用得更加頻繁了。 it
轉載時候請註明出處。 http://my.oschina.net/benhaile io