如何根据另一个定义一个Java注释?

Reu*_*mas 7 java annotations bean-validation

例如,我想有@Nonnegative,定义为@Min(0),并@DaySeconds定义为@Min(0) @Max(86399).

Tun*_*aki 5

两者@Min@Max注释都可以用于注释本身.这称为约束组合.

因此,您可以DaySeconds像这样定义一个新约束:

@Min(0)
@Max(86399)
@Target( { METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface DaySeconds {

    String message() default "{your.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
Run Code Online (Sandbox Code Playgroud)

这将是相同的@Nonnegative.