今天早上我发现了一个有趣的问题 ---将对象转换为字符串检查是否有效,我发现有两种类型的答案。一种是将对象转换为 String,另一种是获取该对象的字符串表示形式(例如,使用 String.valueOf() 或 toString())。我的问题是:最佳实践是什么?它们之间有什么区别?
在我问这个问题之前,我发现了几个相关的现有问题,但我没有找到一个可以回答我的问题的问题。如果我错过了重要的,请原谅我,希望你不介意指点我的答案。
谢谢,
今天早上我发现了一个有趣的问题 ---将对象转换为字符串检查是否有效,我发现有两种类型的答案。一种是将对象转换为 String,另一种是获取该对象的字符串表示形式(例如,使用 String.valueOf() 或 toString())。我的问题是:最佳实践是什么?它们之间有什么区别?
在我问这个问题之前,我发现了几个相关的现有问题,但我没有找到一个可以回答我的问题的问题。如果我错过了重要的,请原谅我,希望你不介意指点我的答案。
谢谢,
如果 Object 不是 String,则强制转换将ClassCastException
在运行时抛出 a。例如:
Object o = new Object();
String s = (String) o; //Exception here
其他两种解决方案(toString
vs. String.valueOf
)之间的区别在于空对象的情况。toString
会抛出异常,而String.valueOf()
只会返回"null"
:
Object o = null;
String s = String.valueOf(o); //s = "null";
String t = o.toString(); //NullPointerException