2017-05-18 11 views
1

割り当てがnullPointerExceptionを返す場合、文字列をデフォルト値に設定する方法はありますか?nullの場合、Java文字列のデフォルト値を設定します。

このような文字列の初期化

言ってイム:それは私はでそれを行うことができます知っている、それをデフォルト値を与える必要がnullポインタを与える場合

String myString= jsonElement.getAsJsonObject().get("myString").getAsString(); 

をした後に確認するだけということである「場合」方法?それは私が約20弦を開始しているので、多くのチェックを意味するでしょう。

が好き、それを行うにはどのような方法があります:

String myString = jsonElement.getAsJsonObject().get("myString") 
    .getAsString() || "defaultValue"; 
+2

*あなたはどのような変数にJSONデータを取得するとき、あなたは代わりに自分のことを行うので、ジャクソンまたはgsonのような適切なJSONパーサーを使用する必要があり、* ...「私は約20の文字列を開始していて」。 – Tom

+0

'getAsJsonObject()'の戻り値の型は何ですか? – steffen

+0

@steffen 'getAsJsonObject()'の戻り値の型はJsonObjectです。 –

答えて

1

をそれを行うための方法を作る方法について。

String getOrDefault(JsonElement jsonElement, String key) 
    JsonObject obj = jsoneElement.getAsJsonObject().get(key); 
    return obj==null?"default":obj.getAsString(); 
} 
+0

これは良い方法のように見えますが、私の場合はすべての文字列に対して同じデフォルト値を使用します。 –

4

あなたはのように、そのためにOptionalを使用することができます。

Optional.of(jsonElement).map(element -> element.getAsJsonObject()).map(o -> o.get("myString")).map(e -> e.getAsString()).orElse("defaultValue"); 
+0

すべてのケースを配列に入れます。 "myString"部分の配列の要素でこれを呼び出す配列をループします。 – Averroes

関連する問題