Java8新特性之重復(fù)注解(repeating annotations)淺析
一、什么是重復(fù)注解
允許在同一申明類型(類,屬性,或方法)的多次使用同一個注解
二、一個簡單的例子
java 8之前也有重復(fù)使用注解的解決方案,但可讀性不是很好,比如下面的代碼:
public @interface Authority {
String role();
}
public @interface Authorities {
Authority[] value();
}
public class RepeatAnnotationUseOldVersion {
@Authorities({@Authority(role="Admin"),@Authority(role="Manager")})
public void doSomeThing(){
}
}
由另一個注解來存儲重復(fù)注解,在使用時候,用存儲注解Authorities來擴展重復(fù)注解,我們再來看看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(){ }
}
不同的地方是,創(chuàng)建重復(fù)注解Authority時,加上@Repeatable,指向存儲注解Authorities,在使用時候,直接可以重復(fù)使用Authority注解。從上面例子看出,java 8里面做法更適合常規(guī)的思維,可讀性強一點
三、總結(jié)
JEP120沒有太多內(nèi)容,是一個小特性,僅僅是為了提高代碼可讀性。這次java 8對注解做了2個方面的改進(JEP 104,JEP120),相信注解會比以前使用得更加頻繁了。
相關(guān)文章
Java中volatile關(guān)鍵字的線程的可見性、有序性詳解
這篇文章主要介紹了Java中volatile關(guān)鍵字的線程的可見性、有序性詳解,在juc多線程并發(fā)編程中,常常需要關(guān)注線程的"可見性"與"有序性",本文將詳細介紹這兩部分內(nèi)容,以及volatile關(guān)鍵字的使用,需要的朋友可以參考下2024-01-01Springboot2 集成 druid 加密數(shù)據(jù)庫密碼的配置方法
這篇文章給大家介紹Springboot2 集成 druid 加密數(shù)據(jù)庫密碼的配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-07-07Java中BufferedReader類獲取輸入輸入字符串實例
這篇文章主要介紹了Java中BufferedReader類獲取輸入輸入字符串實例,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02基于java下載中g(shù)etContentLength()一直為-1的一些思路
下面小編就為大家?guī)硪黄趈ava下載中g(shù)etContentLength()一直為-1的一些思路。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06