@Repeatable的作用以及具體如何使用

文章目錄

  • 1. 前言
  • 2. 先說結論
  • 3. 案例演示

1. 前言

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

2. 先說結論

  1. @Repeatable的作用:使被他注釋的注解可以在同一個地方重復使用。

  2. 具體使用如下:

    @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. 案例演示

  1. 先定義新注解

    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface MyAnnotation {String name();
    }
    
  2. 創建新類并使用自定義注解

    public class MyAnnotationTest {@MyAnnotation(name = "Test1")private void testMethod(){}
    }
    
  3. 當注解@MyAnnotation還沒被@Repeatable注釋的時候,在testMethod()方法上使用多次,會出現下面報錯:
    在這里插入圖片描述
    將會提示:@MyAnnotation沒被@Repeatable注解,無法重復使用@MyAnnotation

  4. 因此在@MyAnnotation上使用@MyAnnotation,如下:
    在這里插入圖片描述
    @Repeatable(value = MyAnnotationList.class) 中引用了 @MyAnnotationList注解,用于@MyAnnotation注解上,有如下幾個細節:

    1. 細節一:在引用注解上的@MyAnnotationList的方法中得有value()方法,如下:
      在這里插入圖片描述

    2. 細節二:在引用注解上的@MyAnnotationList的方法中得有【被@Repeatable注解的@MyAnnotation注解類型的數組返回值的value方法】
      在這里插入圖片描述

    3. 細節三:該案例中,若在方法上重復使用@MyAnnotation注解,實際上也會在運行的時候被包裝成MyAnnotationList[] 里面,如下:
      在這里插入圖片描述

    4. 細節四:@MyAnnotation可多次使用,但不可多次與@MyAnnotationList一起使用,如下:
      在這里插入圖片描述

    5. 細節五:@MyAnnotation可多次使用,但僅可一個與@MyAnnotationList一起使用,但唯一的@MyAnnotation在運行的時候被包裝成MyAnnotationList[] 里面,如下:
      在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43201.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43201.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43201.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS7源碼安裝MySQL詳細教程

😊 作者: Eric 💖 主頁: https://blog.csdn.net/weixin_47316183?typeblog 🎉 主題:CentOS7源碼安裝MySQL詳細教程 ?? 創作時間: 2023年08月014日 文章目錄 1、安裝的四種方式2、源碼安裝…

深度解析:DDoS攻擊與先進防御策略

目錄 DDoS 介紹 DDoS 攻擊理論 DDoS 介紹 DDoS(分布式拒絕服務)攻擊是一種惡意網絡活動,旨在通過同時向目標系統發送大量請求或流量,使其無法正常運行或提供服務。攻擊者通常利用網絡上的多個計算機和設備,形成一個&…

極智嘉x吉利汽車 x京東物流,引領汽車行業智慧物流新變革!

近日,中國領先的汽車制造商吉利汽車攜手中國領先的技術驅動的供應鏈解決方案及物流服務商京東物流、全球倉儲機器人引領者極智嘉(Geek),在西安吉利汽車制造基地RDC倉庫率先落地SkyPick上存下揀解決方案,實現了全物流鏈精益化、智能化、一體化…

Spring-4-掌握Spring事務傳播機制

今日目標 能夠掌握Spring事務配置 Spring事務管理 1 Spring事務簡介【重點】 1.1 Spring事務作用 事務作用:在數據層保障一系列的數據庫操作同成功同失敗 Spring事務作用:在數據層或業務層保障一系列的數據庫操作同成功同失敗 1.2 案例分析Spring…

STM32--TIM定時器(2)

文章目錄 輸出比較PWM輸出比較通道參數計算舵機簡介直流電機簡介TB6612 PWM基本結構PWM驅動呼吸燈PWM驅動舵機PWM控制電機 輸出比較 輸出比較,簡稱OC(Output Compare)。 輸出比較的原理是,當定時器計數值與比較值相等或者滿足某種…

【數據結構OJ題】有效的括號

原題鏈接:https://leetcode.cn/problems/valid-parentheses/ 目錄 1. 題目描述 2. 思路分析 3. 代碼實現 1. 題目描述 2. 思路分析 這道題目主要考查了棧的特性: 題目的意思主要是要做到3點匹配:類型、順序、數量。 題目給的例子是比較…

【Hibench 】完成 HDP-Spark 性能測試

🍁 博主 "開著拖拉機回家"帶您 Go to New World.?🍁 🦄 個人主頁——🎐開著拖拉機回家_Linux,Java基礎學習,大數據運維-CSDN博客 🎐?🍁 🪁🍁 希望本文能夠給您帶來一定的…

單片機實訓報告

這周我們進行了單片機實訓,一周中我們通過七個項目1:P1 口輸入/輸出 2:繼電器控制 3 音頻控制 4:子程序設計 5:字符碰頭程序設計 6:外部中斷 7: 急救車與交通信號燈,練習編寫了子程…

mysql 設置 mysql 日志時間與系統時間保持一致

臨時設置 mysql> show variables like %log_timestamps%;-----------------------| Variable_name | Value |-----------------------| log_timestamps | UTC |-----------------------1 row in set (0.00 sec)系統是 CST , nysql 是 UTC當UTC時間為0點時&am…

docker的使用方法總結

Docker是一個非常強大的工具,它可以用于創建、部署和運行應用程序。以下是一些docker相關的常用指令, 1、查看docker版本 docker version 2、查看正在運行的Docker容器 docker ps 3、查看所有的docker容器(包括沒有運行的容器&#xff0…

Python 之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息

Python之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息 目錄 Python之 Http 獲取網頁的 html 數據,并去掉 html 格式等相關信息

SCF金融公鏈新加坡啟動會 創新驅動未來

新加坡迎來一場引人矚目的金融科技盛會,SCF金融公鏈啟動會于2023年8月13日盛大舉行。這一受矚目的活動將為金融科技領域注入新的活力,并為廣大投資者、合作伙伴以及關注區塊鏈發展的人士提供一個難得的交流平臺。 在SCF金融公鏈啟動會上, Wil…

級聯(數據字典)

二級級聯: 一:新建兩個Bean 父級: /*** Description 數據字典* Author WangKun* Date 2023/7/25 10:15* Version*/ Data AllArgsConstructor NoArgsConstructor TableName("HW_DICT_KEY") public class DictKey implements Seri…

excel快速選擇數據、選擇性粘貼、凍結單元格

一、如何快速選擇數據 在excel中,希望選擇全部數據,通常使用鼠標選擇數據然后往下拉,當數據很多時,也可單擊單元格使用ctrl A選中全部數據,此外,具體介紹另一種方法。 操作:ctrl shift 方向…

【C++】STL---list

STL---list 一、list 的介紹二、list 的模擬實現1. list 節點類2. list 迭代器類(1)前置(2)后置(3)前置- -、后置- -(4)! 和 運算符重載(5)* 解引用重載 和 …

css3新增屬性

文章目錄 css3新增屬性box-shadowborder-radius設置橢圓 position: sticky;漸變背景線性漸變可重復的漸變背景 徑向漸變可重復的漸變背景 過渡分屬性 動畫關鍵幀與transition的關系demo 變形平移使用 旋轉使用 其他使用立體效果perspective元素位于3D空間還是平面中 縮放變形的…

tornado在模板中遍歷二維數組

要在Tornado模板中遍歷一個二維數組&#xff0c;你可以使用Tornado的模板語法來實現迭代和顯示數組中的每個元素。 以下是一個示例&#xff0c;演示如何在Tornado模板中遍歷和顯示二維數組的內容&#xff1a; template.html: <!DOCTYPE html> <html> <head&g…

小米分享 | 解密面試題:網易面試如何回答“創建線程有哪幾種方式?”

大家好&#xff0c;我是你們的小米&#xff01;今天要和大家一起探討一個在技術面試中常見的問題&#xff1a;創建線程有哪幾種方式&#xff1f;這可是個經典面試題哦&#xff01;不過別擔心&#xff0c;小米在這里為你詳細解析&#xff0c;幫你輕松應對&#xff0c;讓你在面試…

深度學習在MRI運動校正中的應用綜述

運動是MRI中的主要挑戰之一。由于MR信號是在頻率空間中獲取的&#xff0c;因此除了其他MR成像偽影之外&#xff0c;成像對象的任何運動都會導致重建圖像中產生偽影。深度學習被提出用于重建過程的幾個階段的運動校正。廣泛的MR采集序列、感興趣的解剖結構和病理學以及運動模式&…

用dcker極簡打包java.jar鏡像并啟動

用dcker極簡打包java.jar鏡像并啟動 一、本地打包好jar包 二、新建文件夾&#xff0c;將步驟1中的jar包拷貝到文件夾下 三、同目錄下新建Dockerfile ## 基礎鏡像&#xff0c;這里用的是openjdk:8 FROM openjdk:8## 將步驟一打包好的jar包 拷貝到鏡像的 跟目錄下[目錄可以自定義…