我知道Java中的基本注解,比如@Override
等。
Annotations are only metadata and they do not contain any business logic.
我正在阅读Oracle 文档 页面上的重复注解,以了解 Java 8 的新功能。
例如,您正在编写代码以使用“定时器服务,使您能够在给定时间或特定计划上运行方法,类似于 UNIX cron 服务”。现在您想要设置一个计时器来运行一个名为doPeriodicCleanup
的方法,在每个月的最后一天以及每个星期五晚上11:00运行。要设置计时器运行,请创建一个@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;
}
声明包含注解类型
包含注解类型必须具有一个数组类型的值元素。该数组类型的组件类型必须是可重复注解类型。Schedules包含注解类型的声明如下:
public @interface Schedules {
Schedule[] value();
}
我不理解@Schedules注释的使用和用法。 它如何在下面的方法中工作?
public void doPeriodicCleanup() { ... }
提前感谢。