处理空到字符串错误

ono*_*ono 1 java string null

我有一个正在检索并转向字符串的对象..get()可能会返回null,这在尝试转换为字符串时会崩溃.在这种情况下处理null的最佳方法是什么?如果返回null,也许将其设置为空字符串.我试图避免为每个.get()写一个if语句

 String value1 = userDict.get("key1").toString();
 String value2 = userDict.get("key2").toString();
 String value3 = userDict.get("key3").toString();
 String value4 = userDict.get("key4").toString();
Run Code Online (Sandbox Code Playgroud)

编辑:

userDict是HashMap(String,Object)

Shr*_*ike 5

尝试使用String.valueOf(userDict.get("key1")).根据规格valueOf(Object o),它要么调用toString()该对象或返回字符串"null"如果给一个空对象.

编辑:编辑指向java 7 api而不是java 6 api.

编辑2:如果您不介意使代码更密集,可以使用三元运算符封装此方法的逻辑:

String value1 = (userDict.get("key1") == null) ? "" : userDict.get("key1").toString();
Run Code Online (Sandbox Code Playgroud)

  • 我从来没有见过一个用例,在某个地方存储或打印"null". (4认同)
  • 是的,但没有正确的用例,这似乎是一个很好的起点.如果给出`null`,可以很容易地编写这个方法的自定义版本,它可以做更有用的事情. (2认同)