2013-10-23 56 views
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 

或者我能做得更好吗?

回答

1

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

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

相关问题