投射到字符串或在Java中使用将String.valueOf()[重复](Casting to St

2019-10-18 05:48发布

这个问题已经在这里有一个答案:

  • 铸件之间的差异到字符串,将String.valueOf 8个回答

今天早上,我发现了一个有趣的问题--- 投对象的字符串检查,如果有效 ,我发现有两种类型的答案。 一个是将对象强制转换为字符串,另外一个是获得该对象的字符串表示,而不是(例如,使用将String.valueOf()或的toString())。 我的问题是:什么是最好的做法是什么? 它们之间有什么区别呢?

之前我问这个问题,我发现这是相关的一些现有问题,但我没有找到其中一个回答我的问题。 请原谅我,如果我错过了重要的,希望你不介意指着我的答案。

谢谢,

Answer 1:

如果对象是不是字符串,铸造将抛出一个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


文章来源: Casting to String or using String.valueOf() in Java [duplicate]