使用 String.valueOf() 要注意,
其源码是:
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); }
如果直接传入一个null,null==null 就报错了。
而如果这样
Map<String,Object> map = new HashedMap(); String s2 = String.valueOf(map.get("name"));代码不会报错,会返回一个“null”,注意这是一个字符串。
对s2的判断不能用
if (s2 == null){ }
应该要,或者 equals
if (s2 == "null"){ }
细节和源码 的重要性