我正在寻找一种可以帮助我验证对象属性的好方法或框架。我从另一个库中获取对象,因此无法更改对象本身的任何内容。
我知道这些来自 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
或者我可以做得更好吗?