[英]Java custom validation annotation
public class Student{
@NotNull
private Course course= null;
@CustomValidation(enumCourse = course)
private String details = null;
}
}
如何將課程變量傳遞給CustomValidation批注? 我收到一個錯誤消息,說課程必須是一個枚舉常量表達式。
我也寫了一個自定義的驗證界面和驗證器。
注釋屬性在編譯時必須恆定。
您不能在那里使用變量。
這里的關鍵字是cross fields validation
。
您有兩種選擇:
或在方法級別創建注釋,該注釋將返回所有必需的字段以進行驗證。
@CustomAnnotations Pair<Course, String> getCourseAndDetailForValidation() { return Pair.of(course, details) }
您可以更改返回類型以匹配您的喜好,可能是列表,數組,包裝對象...
它由JLS的9.6.1節指定。 注釋成員類型必須是以下之一:
原始String類一個Enum另一個Annotation上面任何一個的數組
課程必須是這些類型之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.