Java8新增的重復(fù)注解功能示例
本文實例講述了Java8新增的重復(fù)注解功能。分享給大家供大家參考,具體如下:
一 點睛
在Java 8以前,同一個程序元素前最多只能使用一個相同類型的Annotation;如果需要在同一個元素前使用多個相同類型的Annotation,則必須使用Annotation“容器”。
為了將該注解改造成重復(fù)注解,需要使用@Repeatable修飾該注解,使用@Repeatable時必須為value成員變量指定值。
二 實戰(zhàn)
1 定義重復(fù)注解
import java.lang.annotation.*; // 指定該注解信息會保留到運行時 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Repeatable(FkTags.class) public @interface FkTag { // 為該注解定義2個成員變量 String name() default "瘋狂軟件"; int age(); }
2 定義重復(fù)注解容器
import java.lang.annotation.*; // 指定該注解信息會保留到運行時 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface FkTags { // 定義value成員變量,該成員變量可接受多個@FkTag注解 FkTag[] value(); }
3 測試
@FkTag(age=5) @FkTag(name="瘋狂Java" , age=9) //@FkTags({@FkTag(age=5), // @FkTag(name="瘋狂Java" , age=9)}) public class FkTagTest { public static void main(String[] args) { Class<FkTagTest> clazz = FkTagTest.class; /* 使用Java 8新增的getDeclaredAnnotationsByType()方法獲取 修飾FkTagTest類的多個@FkTag注解 */ FkTag[] tags = clazz.getDeclaredAnnotationsByType(FkTag.class); // 遍歷修飾FkTagTest類的多個@FkTag注解 for(FkTag tag : tags) { System.out.println(tag.name() + "-->" + tag.age()); } /* 使用傳統(tǒng)的getDeclaredAnnotation()方法獲取 修飾FkTagTest類的@FkTags注解 */ FkTags container = clazz.getDeclaredAnnotation(FkTags.class); System.out.println(container); } }
三 運行
瘋狂軟件-->5
瘋狂Java-->9
@FkTags(value=[@FkTag(name=瘋狂軟件, age=5), @FkTag(name=瘋狂Java, age=9)])
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
在ssm中使用ModelAndView跳轉(zhuǎn)頁面失效的解決
這篇文章主要介紹了在ssm中使用ModelAndView跳轉(zhuǎn)頁面失效的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Java mysql數(shù)據(jù)庫并進行內(nèi)容查詢實例代碼
這篇文章主要介紹了Java mysql數(shù)據(jù)庫并進行內(nèi)容查詢實例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11SpringCloud微服務(wù)之Config知識總結(jié)
今天帶大家學(xué)習(xí)SpringCloud微服務(wù)中的Config的相關(guān)知識,文中有非常詳細的介紹,對正在學(xué)習(xí)SpringCloud微服務(wù)的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05SpringBoot集成pf4j實現(xiàn)插件開發(fā)功能的代碼示例
pf4j是一個插件框架,用于實現(xiàn)插件的動態(tài)加載,支持的插件格式(zip、jar),本文給大家介紹了SpringBoot集成pf4j實現(xiàn)插件開發(fā)功能的示例,文中通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下2024-07-07