检查地图的空值

com*_*mit 9 java

我得到map了结果,当我获得价值时,我需要将其转换为String如下所示:

a.setA(map.get("A").toString());
Run Code Online (Sandbox Code Playgroud)

但如果它返回而null不是它抛出nullPointerException,那么我用下面的方法改变它:

a.setA(map.get("A")!=null?map.get("A").toString():"");
Run Code Online (Sandbox Code Playgroud)

但是我有20多个字段,所以我只想这样做:

String val = "";
a.setA(val=map.get("A")!=null?val.toString():"");
Run Code Online (Sandbox Code Playgroud)

但它返回blank所有时间,我只是简单的问题是我不能使用这样的变量?或者还有其他选择吗?

JB *_*zet 20

使用方法.并避免get()两次打电话:

private String valueToStringOrEmpty(Map<String, ?> map, String key) {
    Object value = map.get(key);
    return value == null ? "" : value.toString();
}
Run Code Online (Sandbox Code Playgroud)

...

String a = valueToStringOrEmpty(map, "A");
String b = valueToStringOrEmpty(map, "B");
Run Code Online (Sandbox Code Playgroud)

现在重复一遍:"我不会重复代码".