HashMapにあるNULL値をStringに変換しようとした際の、(String)、String.valueOf()、toString() のそれぞれの違い
(String)
⇒null値として取得する
String.valueOf()
⇒String型の"null"に変換される
toString()
⇒NullPointerExceptionになる
--------------------------------------------------------------------------
【例】
package test;
import java.util.HashMap;
public class testDate {
public static void main(String[] args){
HashMap mapNull = new HashMap();
mapNull.put("TEST", null);
// (String)でStringに変換
String c = (String)mapNull.get("TEST");
System.out.println("cの値="+c);
if (c == null){
System.out.println("cはnull値です。");
} else {
System.out.println("cは文字列です。length="+c.length());
}
// String.valueOfでStringに変換
String d = String.valueOf(mapNull.get("TEST"));
System.out.println("dの値="+d);
if (d == null){
System.out.println("dはnull値です。");
} else {
System.out.println("dは文字列です。length="+d.length());
}
// toString()でStringに変換
String e = (mapNull.get("TEST")).toString();
System.out.println("eの値="+e);
if (e == null){
System.out.println("eはnull値です。");
} else {
System.out.println("eは文字列です。length="+e.length());
}
}
}
--------------------------------------------------------------------------
【実行結果】
cの値=null
cはnull値です。
dの値=null
dは文字列です。length=4
java.lang.NullPointerException
at test.testDate.main(testDate.java:31)
Exception in thread "main"