使用String.valueOf()转换的时候,如果需要转换的为空值,那么他就会变成字符串 “null”而非null。
valueof方法被重载多次,其中String.valueof(null)进入了valueof(char[] data)方法,valueof(char[] data)方法直接进入String构造器,内部会获取char[]的length,因此返回空指针异常。String.valueOf(map.get(“id”))却进入了valueOf(Object obj)方法,参数为null时,返回了一个字符串“null”,所以出现了不同的结果。
想要避免这种情况:
1. 使用(String)来转换。
2.在使用之前判断是否为null