最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的@Repeatable注解的作用詳解

 更新時(shí)間:2024年01月31日 10:35:18   作者:搏·夢(mèng)  
這篇文章主要介紹了Java中的@Repeatable注解的作用詳解,@Repeatable注解是用來標(biāo)注一個(gè)注解在同一個(gè)地方可重復(fù)使用的一個(gè)注解,使被他注釋的注解可以在同一個(gè)地方重復(fù)使用,需要的朋友可以參考下

1. 前言

最近無意看到某些注解上有@Repeatable,出于比較好奇,因此稍微研究并寫下此文章。

@Repeatable注解是用來標(biāo)注一個(gè)注解在同一個(gè)地方可重復(fù)使用的一個(gè)注解,比如說你定義了一個(gè)注解,如果你的注解沒有標(biāo)記@Repeatable這個(gè)JDK自帶的注解,那么你這個(gè)注解在引用的地方就只能使用一次。

2. 先說結(jié)論

@Repeatable的作用:使被他注釋的注解可以在同一個(gè)地方重復(fù)使用。

具體使用如下:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(value = MyAnnotationList.class)
public @interface MyAnnotation {
    String name();
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotationList {
	// 被 @Repeatable引用的注解中,必須得有被 @Repeatable注釋的注解(@MyAnnotation)返回類型的value方法
    MyAnnotation[] value();
}
public class MyAnnotationTest {
	@MyAnnotation(name = "Test1")
	@MyAnnotation(name = "Test2")
	private void testMethod() {
    }
	@MyAnnotationList(value = {@MyAnnotation(name = "Test1"), @MyAnnotation(name = "Test2")})
	private void testMethod2() {
	}
}

3. 案例演示

先定義新注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    String name();
}

創(chuàng)建新類并使用自定義注解

public class MyAnnotationTest {

    @MyAnnotation(name = "Test1")
    private void testMethod(){

    }
}

當(dāng)注解@MyAnnotation還沒被@Repeatable注釋的時(shí)候,在testMethod()方法上使用多次,會(huì)出現(xiàn)下面報(bào)錯(cuò):

在這里插入圖片描述

將會(huì)提示:@MyAnnotation沒被@Repeatable注解,無法重復(fù)使用@MyAnnotation

因此在@MyAnnotation上使用@MyAnnotation,如下:

在這里插入圖片描述

4. 注意事項(xiàng)

@Repeatable(value = MyAnnotationList.class) 中引用了 @MyAnnotationList注解,用于@MyAnnotation注解上,有如下幾個(gè)細(xì)節(jié):

細(xì)節(jié)一:在引用注解上的@MyAnnotationList的方法中得有value()方法,如下:

在這里插入圖片描述

細(xì)節(jié)二:在引用注解上的@MyAnnotationList的方法中得有【被@Repeatable注解的@MyAnnotation注解類型的數(shù)組返回值的value方法】

在這里插入圖片描述

細(xì)節(jié)三:該案例中,若在方法上重復(fù)使用@MyAnnotation注解,實(shí)際上也會(huì)在運(yùn)行的時(shí)候被包裝成MyAnnotationList[] 里面,如下:

在這里插入圖片描述

細(xì)節(jié)四:@MyAnnotation可多次使用,但不可多次與@MyAnnotationList一起使用,如下:

在這里插入圖片描述

細(xì)節(jié)五:@MyAnnotation可多次使用,但僅可一個(gè)與@MyAnnotationList一起使用,但唯一的@MyAnnotation在運(yùn)行的時(shí)候被包裝成MyAnnotationList[] 里面,如下:

在這里插入圖片描述

到此這篇關(guān)于Java中的@Repeatable注解的作用詳解的文章就介紹到這了,更多相關(guān)@Repeatable注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java文件操作工具類fileUtil實(shí)例【文件增刪改,復(fù)制等】

    Java文件操作工具類fileUtil實(shí)例【文件增刪改,復(fù)制等】

    這篇文章主要介紹了Java文件操作工具類fileUtil,結(jié)合實(shí)例形式分析了java針對(duì)文件進(jìn)行讀取、增加、刪除、修改、復(fù)制等操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-10-10
  • Java 多線程實(shí)例詳解(二)

    Java 多線程實(shí)例詳解(二)

    本文主要介紹Java 多線程的資料整理,這里整理了詳細(xì)資料及相關(guān)示例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解

    JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解

    這篇文章主要為大家介紹了JAVA線程池監(jiān)控以及動(dòng)態(tài)調(diào)整示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解SpringBoot中META-INF的作用與功能

    詳解SpringBoot中META-INF的作用與功能

    SpringBoot開發(fā)的應(yīng)用程序中,META-INF目錄扮演著非常重要的角色,本文就來介紹一下 META-INF的作用及用處,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-07-07
  • Java構(gòu)造器使用方法及注意事項(xiàng)

    Java構(gòu)造器使用方法及注意事項(xiàng)

    這篇文章主要介紹了Java構(gòu)造器使用方法及注意事項(xiàng)的相關(guān)資料,這里舉例說明如何使用構(gòu)造器及需要注意的地方,需要的朋友可以參考下
    2017-07-07
  • SpringBoot中動(dòng)態(tài)注入Bean的技巧分享

    SpringBoot中動(dòng)態(tài)注入Bean的技巧分享

    在 Spring Boot 開發(fā)中,動(dòng)態(tài)注入 Bean 是一種強(qiáng)大的技術(shù),它允許我們根據(jù)特定條件或運(yùn)行時(shí)環(huán)境靈活地創(chuàng)建和管理 Bean,本文將介紹 Spring Boot 中三種動(dòng)態(tài) Bean 注入技巧,需要的可以參考一下
    2025-06-06
  • SpringMVC實(shí)現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    SpringMVC實(shí)現(xiàn)文件上傳與下載、攔截器、異常處理器等功能

    這篇文章主要給大家介紹了關(guān)于SpringMVC實(shí)現(xiàn)文件上傳與下載、攔截器、異常處理器等功能的相關(guān)資料,這些功能在我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Springboot循環(huán)依賴的原因及解決

    Springboot循環(huán)依賴的原因及解決

    本文主要介紹了Spring Boot中的循環(huán)依賴問題,包括循環(huán)依賴的定義、產(chǎn)生原因以及解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • SpringBoot處理請(qǐng)求參數(shù)中包含特殊符號(hào)

    SpringBoot處理請(qǐng)求參數(shù)中包含特殊符號(hào)

    今天寫代碼遇到了一個(gè)問題,請(qǐng)求參數(shù)是個(gè)路徑“D:/ExcelFile”,本文就詳細(xì)的介紹一下該錯(cuò)誤的解決方法,感興趣的可以了解一下
    2021-06-06
  • 如何利用Java在圖片上添加文字水印效果

    如何利用Java在圖片上添加文字水印效果

    最近發(fā)現(xiàn)經(jīng)常被別的網(wǎng)站盜用,而且不注明出處,因此不得不加上水印,這篇文章主要給大家介紹了關(guān)于如何利用Java在圖片上添加文字水印效果的相關(guān)資料,需要的朋友可以參考下
    2022-01-01

最新評(píng)論

高青县| 宁陵县| 中宁县| 桦南县| 治县。| 罗江县| 年辖:市辖区| 南平市| 咸丰县| 尚志市| 多伦县| 金堂县| 长宁县| 阜南县| 平乡县| 兴业县| 屯门区| 庆元县| 红河县| 南京市| 嘉鱼县| 北碚区| 新密市| 吴旗县| 石柱| 邹城市| 民乐县| 塘沽区| 三江| 杨浦区| 泸定县| 额济纳旗| 灵台县| 全南县| 宜阳县| 若羌县| 榆中县| 新郑市| 河源市| 托克逊县| 科技|