ホームページ >Java >&#&チュートリアル >JavaのvalueOfとtoString,(String)の違い
Java プロジェクトの実際の開発やアプリケーションでは、オブジェクトを String に変換する基本関数を使用する必要があることがよくあります。この記事では、一般的に使用される変換方法の概要を説明します。一般的に使用されるメソッドには、Object.toString()、変換されるオブジェクトの (String)、String.valueOf(Object) などが含まれます。以下では、これらのメソッドを 1 つずつ分析します。
方法 1: Object.toString() メソッドを使用します。次の例を参照してください:
Object object = getObject();
System.out.println( object.toString());
この使用方法では、java.lang.Object クラスに public メソッド .toString() があるため、このメソッドは厳密には任意の Java オブジェクトに対して呼び出すことができます。 ただし、これを使用するときは、オブジェクトが null 値でないことを確認する必要があることに注意してください。そうでない場合は、NullPointerException がスローされます。 このメソッドを使用する場合、通常、派生クラスは Object の toString() メソッドをオーバーライドします。
方法 2: 型変換 (String) オブジェクト メソッドを使用する。これは、オブジェクトを String 型の値に変換する、標準の型変換です。このメソッドを使用する場合は、型が String 型に変換可能である必要があることに注意してください。したがって、instanceof を使用して型チェックを実行し、変換できるかどうかを判断するのが最善です。そうしないと、簡単に CalssCastException がスローされてしまいます。 また、オブジェクトとして定義されているため、特別な注意が必要です
型のオブジェクトが String に変換される場合、構文チェックではエラーが報告されないため、潜在的なエラーが発生する可能性があります。 この時は特に注意してください。例:
Object obj = new Integer(100);
String strVal = (String)obj;
整数型がキャストされるため、実行時にエラーが発生します。文字列型なので渡せません。ただし、形式コードが
Integer obj = new Integer(100);
String strVal = (String)obj;
の場合、構文エラーが報告されます。
さらに、null 値は任意の Java クラス型にキャストできるため、(String)null も正当です。
方法 3: String.valueOf(Object) を使用する String.valueOf(Object) の基礎は Object.toString() です。ただし、Object#toString() とは異なります。方法 1 の前の分析で述べたように、後者を使用する場合は、それが null でないことを確認する必要があります。ただし、3 番目の方法を使用する場合は、オブジェクトが null 値であるかどうかを心配する必要はありません。問題の説明を容易にするために、関連するソース コードを分析してみましょう。 Jdk での String.valueOf(Object) のソース コードは次のとおりです。 }
より 上記のソースコードを見ると、null 値を気にする必要がない理由が明確にわかります。しかし、これは私たちに隠れた危険ももたらします。
object が null の場合、String.valueOf(object) の値は null ではなく文字列 "null" であることに注意する必要があります。 ! !
使用中は必ず注意してください。 if(String.valueOf(object)==null){System.out.println("渡された値は null!");} のようなステートメントを使用した場合にどのような問題が発生するかを想像してみてください。コンソールに出力するときに、次のステートメントの実行結果の視覚的な違いは何であるかをもう一度考えてください: System.out.println(String.valueOf(null));//は文字列 "null " "
System.out.println(null);//null 値は null です 表示される出力はまったく同じもの、つまり null になりますが、それらは同じ意味を持ちますか?
関連おすすめ】 1.
JavaのvalueOfメソッドの例の詳細な説明
JavaのvalueOf、parseInt、toStringの違い
3. valueOf関数とtoStringの詳細な理解メソッド
4. オブジェクト変換関数 toString() と valueOf() の紹介
5. toString() メソッドを使用して時刻を文字列として返す
以上がJavaのvalueOfとtoString,(String)の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。