我有一个包含可选的类Map
:
private Optional<ImmutableMap<String, String>> stuff;
在我的类构造函数中,我通过了Map<String, String> inputStuff
,inputStuff
可能是:
null
- 一个空的
Map
- 一个人口稠密的
Map
对于前两个实例,我需要存储Optional.absent()
,对于第三个实例,我需要存储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);
}
有没有更清洁的方法来处理这个?