Java 8 可重复的自定义注释
2022-09-03 05:55:43
我知道Java中的基本注释,如等。@Override
Annotations are only metadata and they do not contain any business logic.
我正在从Oracle文档页面重复注释,以了解Java 8的新功能。
例如,您正在编写代码以使用“计时器服务,该服务使您能够在给定时间或按特定时间表运行方法,类似于 UNIX cron 服务”。现在,您希望设置一个计时器,以便在当月的最后一天和每个星期五晚上 11:00 运行方法 。若要将计时器设置为运行,请创建一个批注并将其应用于 doPeriodicCleanup 方法两次。doPeriodicCleanup
@Schedule
@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() { ... }
提前致谢。