1

今天早上我发现了一个有趣的问题 ---将对象转换为字符串检查是否有效,我发现有两种类型的答案。一种是将对象转换为 String,另一种是获取该对象的字符串表示形式(例如,使用 String.valueOf() 或 toString())。我的问题是:最佳实践是什么?它们之间有什么区别?

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

谢谢,

4

1 回答 1

12

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

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

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

Object o = null;
String s = String.valueOf(o); //s = "null";
String t = o.toString(); //NullPointerException
于 2013-06-10T17:42:34.140 回答