どうも未経験でシステム業界に転職したキーです。
今回は、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をとると例外処理が発生する。
今回は、以上です。
コメント