1

今朝、興味深い質問を見つけました ---オブジェクトを文字列にキャストして有効かどうかを確認すると、2 種類の答えがあることがわかりました。1 つはオブジェクトを String にキャストする方法で、もう 1 つは代わりにそのオブジェクトの文字列表現を取得する方法です (例: String.valueOf() または toString() を使用)。私の質問は次のとおりです。ベストプラクティスは何ですか? それらの違いは何ですか?

この質問をする前に、関連するいくつかの既存の質問を見つけましたが、私の質問に答えるものは見つかりませんでした. 重要な情報を見逃していた場合はご容赦ください。回答を教えていただければ幸いです。

ありがとうございました、

4

1 に答える 1

12

オブジェクトが文字列でない場合、キャストはClassCastException実行時に をスローします。例えば:

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

toString他の 2 つのソリューション ( vs. )の違いString.valueOfは、null オブジェクトの場合です。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 に答える