如何避免空检查

时间:2013-03-16 06:29:10

标签: java null dry

我有一个类,它有很多字符串字段。在所有那些字段的setter方法中,我必须做这样的检查(因为数据可能为null):

public void setAddress1(String address1)
{
    this.address1 = Contract.checkNull(address1, "");
}

班级合同如下:

public class Contract
{
   public static checkNull(String input, String output)
   {
      return (null == input) ? output : input;
   }
}

我上面有几个像'address1'这样的字段。除了上面有什么好的方法,以避免null?我已阅读avoiding != null,但此处适用吗?

3 个答案:

答案 0 :(得分:2)

如果使用java EE,则可以使用java验证API。 NotNull是EE6标准。

@NotNull
private String address1;
public void setAddress1(String address1)
{
    this.address1 = address1;
}

如果不这样做,你仍然可以使用类似的东西,但非标准。

另一个好方法是使用Null Object Pattern。在那里,偶数空值表示为对象。

答案 1 :(得分:2)

我建议你导入Apache String实用程序,因为你有很多String notnull检查。因为此实用程序提供的所有方法都是null安全的,这意味着当参数为null时,它不会抛出NullPointException并且可以很好地处理它。 here是它的API

答案 2 :(得分:1)

您可以使用Apache Commons Lang

中的StringUtils.defaultString
public void setAddress1(String address1)
{
    this.address1 = StringUtils.defaultString(address1, "");
}