我有一个验证输入字符串的代码,如果输入字符串不匹配所需的格式,我需要抛出 IllegalArgumentException,有多个字段,每个字段都有一组不同的验证条件,所以对于每个字段,我目前正在执行“如果”检查如果不满意我抛出 IllegalArgumentException 并且对应字段有多个 if 条件,并且每个 IllegalArgumentException 都有不同的消息要打印关于字段。
我正在寻找更通用的方法/重构,我可以只抛出一次 IllegalArgumentException 并为无效条件提供所需的错误消息。
我可以想到一种情况,我可以创建变量 say errorMeaage 并在其中存储错误消息,最后,如果变量 errorMeaage 不为空,我可以抛出 IllegalArgumentException 和所需的消息,但这并不能说服我。
当前代码:
package Miscellanious;
public class ValidationMain {
public static void main(String args[]) {
ValidationMain obj = new ValidationMain();
obj.validate("Sam", "Rock", "Turner");
}
public void validate(String firstName, String middleName, String lastName) {
if (firstName != null && !firstName.matches("^[a-zA-Z`’ -]{1,50}$")) {
throw new IllegalArgumentException("Invalid value for firstName field from Input Parameter");
}
if (middleName != null && !middleName.matches("^[a-zA-Z.`’ -]{0,50}$")) {
throw new IllegalArgumentException("Invalid value for middleName field from Input Parameter");
}
if (lastName != null && !lastName.matches("^[a-zA-Z`’ -]{2,50}$")) {
throw new IllegalArgumentException("Invalid value for lastName field from Input Parameter");
}
System.out.println(firstName + " " + middleName + " " + lastName);
}
}
我可以想像下面这样的东西,但它似乎会覆盖以前的错误并且没有多大说服力
叮当猫咪
鸿蒙传说
慕标5832272
相关分类