实例代码如下:
String str = null;
String uSelectDate = String.valueOf(str);
System.out.println("==================uSelectDate:"+uSelectDate);
if(uSelectDate==null){
System.out.println("==================uSelectDate is null");
}else{
System.out.println("==================uSelectDate is not null");
System.out.println("==================uSelectDate length:"+uSelectDate.length());
}
运行结果如下:
可以看出对于值为null的使用String.valueOf()会将其转换为"null"字符串,如果直接使用String.valueOf(null)是会报空指针异常的。
对于String.valueOf()其底层也是使用toString()实现的:首先判断obj是否为空,如果为空就返回"null"串,否则就调用toString()返回对应的字符串。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
而直接使用String.valueOf(null)为什么会报空指针异常参看:http://javacat360.iteye.com/blog/2024378