1

我正在寻找一种可以帮助我验证对象属性的好方法或框架。我从另一个库中获取对象,因此无法更改对象本身的任何内容。

我知道这些来自 Hibernate 的注释,如 @NotNull、@Size 等。但由于我无法更改对象源代码,因此我无法使用它。

class Person {
    String firstname;
    String lastname;
    String gender;
    int age;
}

现在我想应用不同的验证器并为每个属性返回一个自定义错误消息。我想验证一下:

  • 每个字段不为空,不为空
  • 性别是男性还是女性
  • 年龄 > 0
  • 名字最多 25 个字符
  • 姓氏最多 25 个字符

我将如何应用此类验证?为每个验证编写无尽的 if 子句并在那里返回错误消息?

if (age < 0) {
    throw CustomError("Age must be > 0");
}
if (gender != GENDER.MALE || gender != GENDER.FEMALE) {
    throw CustomError("Gender must be either male or female");
}
//etc

或者我可以做得更好吗?

4

1 回答 1

1

那里有许多可能有用的验证框架 - 我在几年前创建了这个框架,它在NetBeans和其他一些公共项目中使用。

还有用于验证整个对象的 Java EE 6 的Bean Validation 。

于 2013-10-23T06:14:01.270 回答