オプションを含むクラスがありますMap
:
private Optional<ImmutableMap<String, String>> stuff;
私のクラスコンストラクターでは、次Map<String, String> inputStuff
の場所に渡されinputStuff
ます。
null
- 空っぽ
Map
- 人口の多い
Map
最初の 2 つのインスタンスでは保存Optional.absent()
する必要があり、3 番目のインスタンスOptional
ではマップの不変のコピーを保存する必要があります。これを処理するという点で私が思いつくことができる最高のものは次のとおりです。
final ImmutableMap<String, String> tmp = ImmutableMap.copyOf(Objects.firstNonNull(inputStuff, ImmutableMap.<String, String>of()));
if (inputStuff.isEmpty())
{
this.stuff = Optional.absent();
}
else
{
this.stuff = Optional.of(inputStuff);
}
これを処理するよりクリーンな方法はありますか?