2013-10-23 16 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用於驗證整個對象。

相關問題