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),相信注解會比以前使用得更加頻繁了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM