goo blog サービス終了のお知らせ 

プログラマーの開発メモ

ソフトウェアエンジニアの覚え書き

【Java】HashMapに詰めたNULL値の扱い

2006年06月12日 11時17分08秒 | Java

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"