0

我有一堂课,里面有很多字符串字段。在所有这些字段的 setter 方法中,我必须进行这样的检查(因为数据可能为空):

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吗?我已阅读避免 != null,但这适用于这里吗?

4

3 回答 3

2

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

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

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

另一种好方法是使用Null Object Pattern。在那里,即使是空值也被表示为对象。

于 2013-03-16T06:50:25.150 回答
2

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

于 2013-03-16T06:57:26.923 回答
1

您可以使用StringUtils.defaultStringApache Commons Lang

public void setAddress1(String address1)
{
    this.address1 = StringUtils.defaultString(address1, "");
}
于 2013-03-16T06:41:25.257 回答