Guava を使用して null 値をデフォルト値に変換するにはどうすればよいでしょうか? 質問する

Guava を使用して null 値をデフォルト値に変換するにはどうすればよいでしょうか? 質問する

Guavaは、渡されたオブジェクト参照が の場合にデフォルト値を取得するメソッドを提供していますかnull?私は<T> T nullToDefault(T obj, T default)のようなものを探しています。デフォルト返されるのはオブジェクトnull

ここで、stackoverflow では何も見つかりませんでした。純粋な Guava ソリューション (もしあれば) のみを探しています。

Gauva 10 API では何も見つかりませんでした。com.google.common.base.Objects有望に見えますが、同様のものが欠けています。

ベストアンサー1

に加えてObjects.firstNonNull、Guava 10.0では、オプションこの種の問題に対するより一般的な解決策としてクラスを使用します。

Optional、値を含む場合と含まない場合があります。Optionalインスタンスを作成するにはさまざまな方法がありますが、この場合はファクトリ メソッドOptional.fromNullable(T)が適切です。

を取得したらOptional、いずれかのorメソッドを使用して、 に含まれる値Optional(値が含まれている場合) または他の値 (値が含まれていない場合) を取得できます。

すべてをまとめると、簡単な例は次のようになります。

T value = Optional.fromNullable(obj).or(defaultValue);

の追加の柔軟性は、デフォルト値としてOptionalを使用したい場合Supplier(そのため、必要な場合を除き、それを取得するための計算は行いません)、または複数のオプション値を連結して存在する最初の値を取得したい場合に有効です。次に例を示します。

T value = someOptional.or(someOtherOptional).or(someDefault);

おすすめ記事