java 注解返回默认键值

qvsjd97n  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(128)

当我们使用注解时

@NotNull并且发生约束验证

not null自动返回他的消息

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) @Retention(RUNTIME) @Repeatable(List.class) @Documented @Constraint(validatedBy = { }) public @interface NotNull {

    String message() default "{jakarta.validation.constraints.NotNull.message}";

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

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

    /**      * Defines several {@link NotNull} annotations on the same element.      *   * @see jakarta.validation.constraints.NotNull   */     @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })   @Retention(RUNTIME)     @Documented     @interface List {

        NotNull[] value();  } }

它有一种方法来归还他钥匙,所以:

jakarta.validation.constraints.NotNull.message
m1m5dgzv

m1m5dgzv1#

假设您正在请求一种方法,在接收到约束冲突后获取消息键-您应该能够通过使用该对象来实现这一点。特别是,您应该查找-ConstraintViolation#getMessageTemplate()。这将返回约束冲突的非插入错误消息。例如,具有一个类:

class Test {
    @NotNull
    String string;

    public Test(String string) {
        this.string = string;
    }
}

然后尝试验证这个类的示例:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator()
Set<ConstraintViolation<Test>> violations = validator.validate( new Test( null ) );
ConstraintViolation<Test> violation = violations.iterator().next();

assertEquals( "{jakarta.validation.constraints.NotNull.message}", violation.getMessageTemplate() );

如果您正在使用一些框架,并且捕获了ConstraintViolationException的异常-请查看ConstraintViolationException#getConstraintViolations(),它将给予与上面示例相同的违规集合。

相关问题