Null 但既不是 Empty 也不是 Blank 的 Java 注释

标签 java validation

是否有任何 java 注释可以像下面的示例一样进行验证?

String test;
test = null; //valid
test = ""; //invalid
test = " "; //invalid
test = "Some values"; //valid

最佳答案

您需要创建自定义注解:@NullOrNotBlank

首先创建自定义注解:NullOrNotBlank.java

@Target( {ElementType.FIELD})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = NullOrNotBlankValidator.class)
public @interface NullOrNotBlank {
    String message() default "{javax.validation.constraints.NullOrNotBlank.message}";
    Class<?>[] groups() default { };
    Class<? extends Payload>[] payload() default {};
}

然后是实际的 validator :NullOrNotBlankValidator.java

public class NullOrNotBlankValidator implements ConstraintValidator<NullOrNotBlank, String> {

    public void initialize(NullOrNotBlank parameters) {
        // Nothing to do here
    }

    public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
        return value == null || value.trim().length() > 0;
    }
}

关于Null 但既不是 Empty 也不是 Blank 的 Java 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31132477/

相关文章:

javascript - HTML 表单中的时间输入验证

c++ - 使用了未初始化的局部变量?

javax 验证约束在 Spring Boot 中不起作用

java - Hibernate for SQLite 支持 envers 吗?

java - Couchbase SDK 3.0 从 java 启用/禁用刷新选项

java - 使用动态文件名将文件从 FtpOutBoundGateway 移动到另一个远程位置

asp.net-mvc - ASP.NET MVC : Is Data Annotation Validation Enough?

javascript - 验证 JavaScript 函数名称

java - 如何在 iText 中从 pdf 的第一页创建图像

java - 比较器不会删除 TreeSet 中的数字重复项