发布网友
共1个回答
热心网友
valueOf会调用obj的toString方法,并直接返回其结果。
犹豫Java中任何一个类都是继承自Object,而Object有toString方法,所以这个方法总是能被调用到。
public class StringConversion {
/**
* @param args
*/
public static void main(String[] args) {
Object a = null;
System.out.println((String)a);
System.out.println(String.valueOf(a));
/**
* Exception in thread "main" java.lang.NullPointerException
* at string.test.StringConversion.main(StringConversion.java:13)
*/
//System.out.println(a.toString());
}
}
前两种方法都输出null
而后一种方法将会报错!
使用Object.toString()时要格外注意null的情况,执行时会报错
所以推荐使用String.valueOf(Object)这种方法!
参考资料:http://www.qgtong.com