kee*_*lar 1 java string casting class
今天早上我发现了一个有趣的问题--- 将对象强制转换为字符串检查是否有效,我发现有两种类型的答案.一种是将对象转换为String,另一种是获取该对象的字符串表示(例如,使用String.valueOf()或toString()).我的问题是:最佳做法是什么?他们之间有什么区别?
在我提出这些问题之前,我发现了一些相关的现有问题,但我找不到一个能回答我问题的问题.如果我错过了重要的一个,请原谅我,希望你不介意指点我的答案.
谢谢,
ass*_*ias 12
如果Object不是String,则强制转换将ClassCastException
在运行时抛出.例如:
Object o = new Object();
String s = (String) o; //Exception here
Run Code Online (Sandbox Code Playgroud)
其他两个解决方案(toString
vs. String.valueOf
)之间的区别在于null对象.toString
将抛出异常,而String.valueOf()
只会返回"null"
:
Object o = null;
String s = String.valueOf(o); //s = "null";
String t = o.toString(); //NullPointerException
Run Code Online (Sandbox Code Playgroud)