String.valueOf()和toString()的区别
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的情况做了处理。