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

时间:2015-11-23 10:11:08

标签: java annotations bean-validation

例如,我希望将@Nonnegative定义为@Min(0),将@DaySeconds定义为@Min(0) @Max(86399)

1 个答案:

答案 0 :(得分:5)

@Min@Max注释都可以用于注释本身。这称为constraint composition

因此,您可以像这样定义一个新约束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 {};

}

@Nonnegative会是一样的。