转换为String或在Java中使用String.valueOf()

时间:2013-06-10 17:39:54

标签: java string class casting

今天早上我发现了一个有趣的问题--- cast object to string check if valid,我发现有两种类型的答案。一种是将对象转换为String,另一种是获取该对象的字符串表示(例如,使用String.valueOf()或toString())。我的问题是:最佳做法是什么?他们之间有什么区别?

在我提出这些问题之前,我发现了一些相关的现有问题,但我找不到一个能回答我问题的问题。如果我错过了重要的那个,请原谅我,并希望你不介意指点我的答案。

谢谢,

1 个答案:

答案 0 :(得分:12)

如果Object不是String,则强制转换将在运行时抛出ClassCastException。例如:

Object o = new Object();
String s = (String) o; //Exception here

其他两个解决方案(toStringString.valueOf)之间的区别在于空对象。 toString会抛出异常,而String.valueOf()只会返回"null"

Object o = null;
String s = String.valueOf(o); //s = "null";
String t = o.toString(); //NullPointerException