如何验证对象的不同属性?

时间:2013-10-23 06:03:40

标签: java validation

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

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

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

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

  • 每个字段不为空,不为空
  • 性别是男性还是女性
  • 年龄> 0
  • firstname是最多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

或者我可以做得更好吗?

1 个答案:

答案 0 :(得分:1)

有许多验证框架可能很有用 - 我在几年前创建了this one,在NetBeans和其他一些公共项目中使用。

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