トップページ⇒prog
12コメント3KB

Javaのnull

■ このスレッドは過去ログ倉庫に格納されています
0001新人社員@休日出社NGNG
JavaでStringを扱うとき、
nullの扱いがいまいち分かりません

if(string==null)...

if(string=="")...

if(string.equals(null))...

if(string.equals(""))...

これらは、どう違うのでしょうか?
0002名無しさん@1周年NGNG
==は、参照の値の比較。Cで言うところのポインタの値の比較。
「左右が同じオブジェクトインスタンス」ならTRUE。

equals()は比較関数。クラスに実装されていて、
インスタンスの「内容」が比較されているはず。
別のインスタンスでも同じ「内容」ならTRUE。
なにをもって同じ「内容」としているかは、その関数の
実装による。
0003名無しさん@1周年NGNG
string==null
stringが何のインスタンスも参照していない場合にTRUE。

string==""
stringが、静的領域のどこかに確保されている""が入っている
StringインスタンスをさしていればTRUE。
(なのかな?普通こんなことかかかないだろうね)

string.equals(null)
stringが参照しているインスタンスと
(String)nullインスタンスの内容比較。
って、そんなことできるの?

string.equals("")
stringが参照しているインスタンスと
(String)""インスタンスの内容比較。
多分、文字列の比較してるはずなので、stringが
文字列""を持っているのならTRUE。

じゃないでしょうか?
0004名無しさん@1周年NGNG
nullと空文字列の区別がついていないのはやばくないですか?
0005名無しさん@1周年NGNG
>4

多分、元ボケCプログラマ。
そのころからごっちゃだったんじゃない?
0006名無しさん@1周年NGNG
>多分、元ボケCプログラマ。

いくらボケでも、こんなでCはやってられ……うーむ、そういうやつも
いるのかね。
VB厨房じゃないの。
00071NGNG
2-4の方、ありがとうございました
休日で、先輩たちがいなくて困ってた所で助かりました。
0008名無しさん@1周年NGNG
まぁ精進しろよな。
0009名無しさん@1周年NGNG
新人ひとりを残してるってのも、酷い会社だよな
0010名無しさん@1周年NGNG
>新人ひとりを残してるってのも、酷い会社だよな
それを糧にしてがむばって。>>1
00111NGNG
>新人ひとりを残してるってのも、酷い会社だよな
ひとりではなかったです
一応、総務のエラい人もいました・・・

でも、皆様のおかげで間に合いました
ありがとうございました
0012名無しさん@1周年NGNG
とりあえず、「文字列が "hogehoge" だったら」というのが書きたいなら
if ( string != null && string.equals("hogehoge") ) ...
■ このスレッドは過去ログ倉庫に格納されています