7

次のような単純なデータセットクラスがあります。

class DataSet {
    private String value;
    private String additionalValue;

    public DataSet(String value, String additionalValue) {
        this.value = value;
        this.additionalValue = additionalValue;
    }

    public String getAdditionalValue() {
        return this.additionalValue;
    }
}

次に、を作成しArrayList<DataSet>て新しい要素を追加しましたDataSet("Value1", null)

ここで、ある時点で、値のあるエントリにあるかどうか、ある場合はそれが何であるかを確認する必要があり"Value1"ますadditionalValue

の場合、単純なループチェックvalue.equals("Value1") == trueを実行し、次に実行します。

if (element.getAdditionalValue() != null) {
    return element.getAdditionalValue();
}

ただし、ステートメントに到達するとすぐにif、値がであるというエラーがスローされますnull。エラーをスローせず、の場合はreturnステートメントをスキップするようにするにはどうすればよいですか?additionalValuenull

編集:

ただし、要素が条件を通過したときnullにチェックするポイントに要素を配置することはできません。additionalValueelement.getValue.equals("Value1")

for (DataSet element : dataSet) {
    if (element.getValue.equals("Value1")) {
        if (element.getAdditionalValue() != null) {
            return element.getAdditionalValue();
        }
     }
}
4

2 に答える 2

21

element問題はあなたのオブジェクトがであるということだと思うnullので、チェックする前にそれをチェックする必要がありますadditionalValue

if (element != null && element.getAdditionalValue() != null){
   return element.getAdditionalValue();
}
于 2012-07-13T13:00:24.753 に答える
3

これはあなたを整理します:

if (element != null && element.getAdditionalValue() != null) {
    return element.getAdditionalValue();
}
于 2012-07-13T13:01:05.870 に答える