我是一名 Java 開發人員,正在研究我作業的公司的代碼庫,試圖尋找我不熟悉的高級語言語法。我偶然發現了一個約束注釋檔案夾,它們都包含自己的注釋定義,如下所示......
@Constraint(validatedBy=MyValidator.class)
@Target(FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FirstAnnotation{
Class<?>[] groups() default{};
Class<? extends Payload>[] payload() default {};
String message() default "Default message";
@Target({FIELD, ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
FirstAnnotation[] value();
}
}
有人可以告訴我這樣做的目的以及如何實施嗎?我知道它是作為值的 FirstAnnotation 串列,但不確定這將是什么用例以及如何使用 List 注釋。我也很好奇是否有人可以闡明為什么需要groups()、payload()和message()?
uj5u.com熱心網友回復:
它是一個靜態成員,這意味著您可以使用它:
@FirstAnnotation.List({
@FirstAnnotation(...),
@FirstAnnotation(...)
})
private MyType myField;
FirstAnnotation您可以通過使用注釋使這更容易@Repeatable(FirstAnnotation.List.class)。這樣,您可以省略顯式串列:
@FirstAnnotation(...)
@FirstAnnotation(...)
private MyType myField;
至于這三個欄位,請參見https://javaee.github.io/tutorial/bean-validation-advanced001.html和https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html /validator-customconstraints.html。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431834.html
