トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-リテラル文字列の比較

技術的雑談-リテラル文字列の比較


 環境

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 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2D%A5%EA%A5%C6%A5%E9%A5%EB%CA%B8%BB%FA%CE%F3%A4%CE%C8%E6%B3%D3

技術的雑談へ戻る

最終更新日時:最終更新時間:2005年07月29日 13時38分53秒
トップページに戻る