gpt4 book ai didi

java - 自定义 validator 和@interface列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:01 25 4
gpt4 key购买 nike

我正在尝试做我的第一个自定义 validator 。我定义了我的注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PojoValidator.class)
@Documented
public @interface Pojo {

String message() default "invalid pojo";

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

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

在网络上的许多教程中,我在声明末尾看到类似的内容:

@Target({ElementType.METHOD,
ElementType.FIELD,
ElementType.ANNOTATION_TYPE,
ElementType.CONSTRUCTOR,
ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
Email[] value();
}

这个@interface List的目的是什么,在我的示例中应该如何编写,它是强制性的吗?

最佳答案

在 Java 1.7 中,您不能拥有同一类型的多个注释。解决这个问题的方法是使用 List。假设您有一个类级验证来检查 2 个字段是否相等,并且您想使用它两次(例如,验证 passwd = RepeatPasswd 和 email = RepeatEmail:

@ValidateEquals.List({
@ValidateEquals(field1 = "pwd", field2="repPwd"),
@ValidateEquals(field1 = "email", field2="repEmail")
})
public class MyForm

不确定它是否是强制性的,但强烈建议类级 validator 使用它。

关于java - 自定义 validator 和@interface列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21960869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com