1、String.valueOf():
Object obj=null;
String str="";
str=String.valueOf(obj);
//str=obj.toString();
System.out.println(str);f
输出:null
2、toString():
Object obj=null;
String str="";
//str=String.valueOf(obj);
str=obj.toString();
System.out.println(str);
报错:
Exception in thread "main" java.lang.NullPointerException
at myProject.StringTest.main(StringTest.java:37)
由以上可以看出,当变量值为null时,String.valueOf()做了处理,返回"null",而toString()会报空指针异常。
现在来看看String.valueOf()的源码
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
可见,对对象为null的情况做了处理。