首页 > 解决方案 > 有什么方法可以限制 POJO 中字符串的大小并在超出限制时抛出特定异常?

问题描述

我需要一个快速的解决方案来限制具有特定限制的属性,如果它超过限制,则抛出自定义异常,类似于注释,以指定要抛出的限制和异常。java 8中有这样的吗?

例子:

@Size(max=20, ex=CustomEx, msg= "Exced the limit")
private String myAttribute;

标签: java

解决方案


一个简单的方法是将您的验证代码放在一个 setter 中:

public void setMyAttribute(String value) throws CustomEx {
    if (value != null && value.length() > 20) {
        throw new CustomEx("Exceeded the limit");
    }

    myAttribute = value;
}

编辑:使用构造函数时的验证:

public MyClass(String value) throws CustomEx {  // the constructor
    setMyAttribute(value);
}

推荐阅读