Java 如何避免空检查

Java 如何避免空检查,java,null,dry,Java,Null,Dry,我有一个类,它有很多字符串字段。在所有这些字段的setter方法中,我必须进行如下检查(因为数据可能为空): 合同的类别如下所示: public class Contract { public static checkNull(String input, String output) { return (null == input) ? output : input; } } 我有几个字段,如上面的“address1”。除了上述方法之外,还有什么好方法可以避免空值

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

合同的类别如下所示:

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

我有几个字段,如上面的“address1”。除了上述方法之外,还有什么好方法可以避免空值吗?我已经读过了,但这在这里适用吗?

您可以从中使用
StringUtils.defaultString


您可以从中使用
StringUtils.defaultString


如果您使用JavaEE,那么就可以使用java验证API。这是EE6标准

@NotNull
private String address1;
public void setAddress1(String address1)
{
    this.address1 = address1;
}
如果你不这样做,你仍然可以使用类似的东西,尽管不是标准的

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

另一个好方法是使用。在这种情况下,即使空值也表示为对象。

如果使用JavaEE,也可以使用java验证API。这是EE6标准

@NotNull
private String address1;
public void setAddress1(String address1)
{
    this.address1 = address1;
}
如果你不这样做,你仍然可以使用类似的东西,尽管不是标准的

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

另一个好方法是使用。在这种情况下,甚至空值也表示为对象。

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

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

对于一个,多个库(guava、apache commons)都有一个Strings.defaultIfNull(str)类型的方法。否则,您可以假定输入良好;也许用@javax.annatotations.notNull注释参数只是为了使列表完整,我想提及断言。不过,使用断言是有争议的:首先,一些库(guava、ApacheCommons)有一个Strings.defaultIfNull(str)类型的方法。否则,您可以假定输入良好;也许用@javax.annatotations.notNull注释参数只是为了使列表完整,我想提及断言。不过,使用断言是有争议的:OP也使用了自己的类似实现。问题的关键不是,OP也使用了类似的实现。问题的关键不在于此。我已经提到了空对象模式,但如何用字符串实现它?@kaushik having
static final String Null\u String=“Null”并将其用作默认值。然而,取决于用例-如果你不能修改你得到的对象并且它们有空值,那么我不认为这是完全适用的,但是它认为你可以用空值字符串替换空值的注释。我已经提到过空值对象模式,但如何用字符串实现呢?@kaushik拥有
静态最终字符串NULL\u String=“NULL”并将其用作默认值。然而,这取决于用例——如果你不能修改你得到的对象,并且它们有空值,那么我认为这不完全适用,但是它认为你可以有一个注释,用这个空值字符串替换空值。