验证失败时从方法返回

时间:2013-10-24 06:01:56

标签: java

我想为Java bean的所有字段编写验证。

我的空白验证方法是

private static boolean isBlank(String value) {
     return value.equalsIgnoreCase("")?true:false;
}

我将bean的所有属性传递给isBlank()方法,并且当任何属性为空时想要退出此方法。像这样 -

public static boolean isValid(User user) {
isBlank(user.getPersonId())?return false:{I want to stay here and check next};
isBlank(user.getEmployeeNumber());
isBlank(user.getFullName());
.
.
}

如何以最少的代码实现此目的。

4 个答案:

答案 0 :(得分:1)

您不需要isBlank(String value),请尝试:

public static boolean isValid(User user){
return !(user.getPersonId().isEmpty()
    || user.getEmployeeNumber.isEmpty()
    || user.getFullName().isEmpty());

}

答案 1 :(得分:0)

您可以在项目中使用Apache commons-lang并添加此静态导入:

import static org.apache.commons.lang.StringUtils.isNotEmpty;

然后您的代码可以是这样的:

public static boolean isValid(User user) {
    return isNotEmpty(user.getPersonId()) && isNotEmpty(user.getEmployeeNumber()) && isNotEmpty(user.getFullName());
}

可以下载Apache Commons Lang here - 只需确保将其作为库添加到项目中,以便可以使用名为StringUtils的类。

答案 2 :(得分:0)

使用您的代码:

public static boolean isValid(User user) {
  if (isBlank(user.getPersonId())) return false;
  if (isBlank(user.getEmployeeNumber())) return false;
  if (isBlank(user.getFullName())) return false;
.
.
  return true;
}

可替换地:

public static boolean isValid(User user) {
  if (isBlank(user.getPersonId()) ||
      isBlank(user.getEmployeeNumber()) ||
      isBlank(user.getFullName())) return false;
  return true;
}

如果你想避免编写所有代码,你可以使用反射来动态发现类字段。如果您正在使用bean范例,则可以使用Introspector类。 Here一个教程(我找不到Oracle网站上的那个)。

答案 3 :(得分:-1)

这样做的理想方式是使用Reflection。这样你就不需要对每个变量进行明确的调用,如果有任何变量被删除或添加,你就不会紧密耦合。

使用反射,循环所有可用变量并从try catch块调用isBlank。

private static boolean isBlank(String value) {
      boolean flag = value.equalsIgnoreCase(""); 
      if(flag){
        throw new Exception(e);
     }
retrun flag;

}