日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java注解字段类型相同_《java基础学习之——重复注解》

發(fā)布時間:2023/12/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java注解字段类型相同_《java基础学习之——重复注解》 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在某些情況下,您要將相同的注釋應用于聲明或類型使用。從JavaSE 8版本開始,重復注釋使您能夠做到這一點。

例如,您正在編寫代碼以使用定時服務,使您能夠在給定時間或某個時間表運行方法,類似于UNIXcron服務。現(xiàn)在你想設置一個計時器來運行一個方法doPeriodicCleanup,在這個月的最后一天和每個星期五晚上11點。要設置運行定時器,創(chuàng)建一個@Schedule注解并將其應用于doPeriodicCleanup方法兩次。第一個用途指定一個月的最后一天,第二個用于指定星期五為11p.m.,如下面的代碼示例所示:

@Schedule(dayOfMonth="last")

@Schedule(dayOfWeek="Fri", hour="23")

public void doPeriodicCleanup() { ... }

前面的示例將注解應用于方法。您可以在使用標準注解的任何地方重復注釋。例如,您有一個用于處理未經(jīng)授權的訪問異常的類。您可以使用一個@Alert注解為管理員manager注解該類,另一個用于管理員admin:

@Alert(role="Manager")

@Alert(role="Administrator")

public class UnauthorizedAccessException extends SecurityException { ... }

出于兼容性原因,重復注釋存儲在由Java編譯器自動生成的容器注解中。為了使編譯器執(zhí)行此操作,在你的代碼中兩個聲明必須要寫。

第一步:聲明一個可重復的注解類型

注:將相同的注解應用于聲明而不首先聲明它可重復,導致編譯時錯誤。

該注解類型必須被@Repeatable元注解所標記,以下例子定義了一個注解@Schedule為可重復注解類型:

importjava.lang.annotation.Repeatable;

@Repeatable(Schedules.class)

public @interface Schedule {

String dayOfMonth() default"first";

String dayOfWeek() default"Mon";

int hour() default 12;

}

@Repeatable元注釋括號中的的值是Java編譯器生成的用于存儲重復注釋的容器注解的類型。在此示例中,容器注解的類型為Schedules,因此重復注解@Schedule將存儲在@Schedules注解中。

第二步:聲明包含注解類型

容器注解類型必須具有數(shù)組類型的值元素。數(shù)組類型的組件類型必須是可重復的注釋類型。容器注解類型Schedules的聲明如下:

public@interface Schedules {

Schedule[] value();

}

檢索注解

Reflection API中有幾種可用于檢索注解的方法。返回單個注釋的方法(如AnnotatedElement.getAnnotationByType(Class))。如果存在所請求類型的一個注解,它們只返回單個注釋。如果存在多個請求類型的注解,您可以先獲取它們的容器注解來獲取它們。這樣,舊代碼繼續(xù)運行。在Java SE 8中引入了其他方法,它們通過容器注釋進行掃描,以一次返回多個注釋,如AnnotatedElement.getAnnotations(Class)。有關所有可用方法的信息,請參閱AnnotatedElement類規(guī)范。

設計注意事項

設計注解類型時,您必須考慮該類型注解的基數(shù)。現(xiàn)在可以使用注解零次,一次,或者如果注解的類型被標記為@Repeatable多次。也可以通過使用@Target元注解來限制可以使用注解類型的位置。例如,您可以創(chuàng)建只能在方法和字段上使用的可重復注解類型。重要的是仔細設計注解類型,以確保使用注解的程序員發(fā)現(xiàn)它盡可能靈活和強大。

總結

以上是生活随笔為你收集整理的java注解字段类型相同_《java基础学习之——重复注解》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。