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);