0

I have a class, which has lots of string fields. In the setter methods of all those field I have to do a check like this (As the data may be null):

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

The class Contract is as follows:

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

I have several of fields like 'address1' above. Is there any good method other than the above , to avoid the null? I have read avoiding != null, but is that applicable here ?

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を使用することです。その中で、null もオブジェクトとして表されます。

于 2013-03-16T06:50:25.150 に答える
2

多くの String notnull チェックがあるため、Apache String ユーティリティをインポートすることをお勧めします。このユーティリティが提供するすべてのメソッドは null セーフであるため、引数が null の場合、NullPointException をスローせず、うまく処理できます。これがそのAPIです

于 2013-03-16T06:57:26.923 に答える
1

Apache Commons LangStringUtils.defaultStringから使用できます

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