我需要一个更清晰的解决方案来使用ImmutableSet.我的代码看起来像
Set foo = ImmutableSet.copyOf(aGeoR.getFailed());
Run Code Online (Sandbox Code Playgroud)
当aGeoR.getFailed()返回一个或多个条目时,它工作得很好.
当返回的集为null时,它会失败.
当它为null时,我需要一个
Set foo = ImmutableSet.of();
Run Code Online (Sandbox Code Playgroud)
干净的方法是什么?
Kev*_*ion 17
这是一个关于番石榴的问题ImmutableSet,但这里真正的问题是aGeoR.getFailed().它基本上永远不适合返回null的集合返回方法.它应该返回一个空集开头(参见Effective Java); 是的,事实并非如此会给用户带来一些痛苦.
当我必须处理这样的API时,我无法解决它或修复它,我完全按照你在@Jherico的答案中修改的那样做.
Set<FailedGeoR> failedOrNull = aGeoR.getFailed();
Set<FailedGeoR> failed = (failedOrNull == null)
? ImmutableSet.<FailedGeoR>of()
: ImmutableSet.copyOf(failedOrNull);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5801 次 |
| 最近记录: |