「Java」String.valueOf() と toString() の違い

Java

どうも未経験でシステム業界に転職したキーです。
今回は、Javaで使用頻度の高いString.valueOf() と toString()の違いについて簡単にご紹介していきます。
<所要時間:1分>




どちらも大前提として、数値型を文字列型にキャスト(型を変える)するという使い方は同じですが、違いもあります。

結論から述べると…
nullがキャストされた際に、例外(NullPointerException)が発生するかどうかです。

コードで見ていきます。

String.valueOf()の場合

public class Example {

	public static void main(String[] args) {
			Integer num = 100;
			Integer num1 = null;

			String str = String.valueOf(num);
			String str1 =String.valueOf(num1);
			System.out.println(str);
			System.out.println(str1);
		}
}

実行すると…

100
null




toString()の場合

public class Example {

	public static void main(String[] args) {
			Integer num = 100;
			Integer num1 = null;  //例外の理由//

			String str3 =  num.toString();
			String str4 = num1.toString();
			System.out.println(str3);
			System.out.println(str4);
	}
}

実行すると…

Exception in thread "main" java.lang.NullPointerException
at example.Example.main(Example.java:10)  
//9行目の処理はとおっているが、10行目で例外が発生

つまり…

String.valueOf()は値にnullをとることができるが、
toString()はnullをとると例外処理が発生する。

今回は、以上です。

コメント

タイトルとURLをコピーしました