这个问题已经在这里有一个答案:
- 铸件之间的差异到字符串,将String.valueOf 8个回答
今天早上,我发现了一个有趣的问题--- 投对象的字符串检查,如果有效 ,我发现有两种类型的答案。 一个是将对象强制转换为字符串,另外一个是获得该对象的字符串表示,而不是(例如,使用将String.valueOf()或的toString())。 我的问题是:什么是最好的做法是什么? 它们之间有什么区别呢?
之前我问这个问题,我发现这是相关的一些现有问题,但我没有找到其中一个回答我的问题。 请原谅我,如果我错过了重要的,希望你不介意指着我的答案。
谢谢,
如果对象是不是字符串,铸造将抛出一个ClassCastException
运行时。 例如:
Object o = new Object();
String s = (String) o; //Exception here
另外两个解决方案之间(的差toString
与String.valueOf
)是一个空对象的情况下。 toString
将抛出一个异常,而String.valueOf()
将简单地返回"null"
:
Object o = null;
String s = String.valueOf(o); //s = "null";
String t = o.toString(); //NullPointerException