我正在使用不可变映射(immutable map)
public Map<String,String> getMap(){
return ImmutableMap.<String,String>builder()
.put("FOO",getFooType())
.put("BAR", getBarType())
.build();
}
在某些情况下,
getFooType()
或 getBarType()
会返回 null。这会导致从 com.google.common.collect.ImmutableMap
抛出异常。我想知道是否有一种优雅的方法只使用非空且非空字符串填充 Map。我可以使用任何 Map 实现,不限于 guava 库。
我可以放弃以下内容:
Map<String,String> map = new HashMap<>();
String fooType = getFooType();
String barType = getBarType();
if (fooType!=null && fooType.length()>0){
map.put("FOO", fooType);
}
if (barType!=null && barType.length()>0){
map.put("BAR", barType);
}
由于我有许多键需要添加到地图中,这种if检查使代码看起来不够美观。我想知道是否有更优雅的方式来处理。
我正在使用Java 8进行我的项目。
getFooType
和getBarType
是静态方法吗? - Jorn VerneeCollections.unmodifiableMap
也可以吗? - Jorn Vernee