我知道在java中基本註解像@Override
等Java的8重複定製註釋
Annotations are only metadata and they do not contain any business logic.
我經歷從Oracle documentation頁重複註釋瞭解java-8
新功能。
例如,您正在編寫代碼以使用timer service that enables you to run a method at a given time or on a certain schedule, similar to the UNIX cron service
。現在,您要設置一個計時器,以在該月的最後一天和每週五下午11:00運行方法doPeriodicCleanup
。要設置計時器運行,請創建一個@Schedule
註釋並將其應用兩次到doPeriodicCleanup方法。
@Schedule(dayOfMonth="last")
@Schedule(dayOfWeek="Fri", hour="23")
public void doPeriodicCleanup() { ... }
聲明一個可重複的註釋類型
註釋類型必須標明@Repeatable元註釋。下面的示例定義的自定義@Schedule重複註解類型:
import java.lang.annotation.Repeatable;
@Repeatable(Schedules.class)
public @interface Schedule {
String dayOfMonth() default "first";
String dayOfWeek() default "Mon";
int hour() default 12;
}
聲明包含註釋類型
含註釋類型必須與一個數組類型的值的元素。數組類型的組件類型必須是可重複的註釋類型。包含註釋類型日程表的聲明如下:
public @interface Schedules {
Schedule[] value();
}
我不明白的@Schedules標註的使用和使用。現在如何爲以下方法工作?。
public void doPeriodicCleanup() { ... }
在此先感謝。
爲什麼你需要重複註釋?在我看來,你可以在一個實例上擁有所有的屬性,然後找出屬性存在和省略的意圖。顯然有一些屬性組合是無效的,但你已經有了這種情況。 –
只是我想了解oracle文檔頁面。這個例子已經從那裏引用。 –