!!!技術的雑談-リテラル文字列の比較 !!環境 JDK1.4.2、1.5 ってか、Java全般? !!現象 String型の変数aaaaに入っている文字列が"abcd"と同じか調べたいのだが、変数aaaaがnullである場合がありえる。 aaaa=nullの時に if(aaaa.equals("abcd") { System.out.println("aaaaはabcdだよ。"); } とか実行すると、 java.lang.NullPointerException at com.himajin2001.TestApplication.main(TestApplication.java:33) って怒られます。 かといって、一々文字列変数のチェックをするたびにnullチェックをするのは無粋ですよね? !!対処 実は、上記のif分を if("abcd".equals(aaaa) { と書き直すだけでnullチェックをしないで済みます!! 実際、aaaaがnullでも正常に(NullPointerExceptionが出ずに)if文が通ります。 なーんか文の意味的には納得行かない気もしますが、これがお約束なみたいです。 リテラルはnullってことありえませんからね。 !!履歴 2005/2/29 -- 初版 [[技術的雑談]]へ戻る !!突っ込み {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る