結構やりがち。初心者だと確実にやる。むしろ今でもたまにやっちゃう。さらに、たまに正常に動いちゃう。
String value = ...
if( value == "OK"){
// do anything
}
ついやりそうになる
動かない時があるから見て欲しいといわれて、商品として稼働しているコードを貰ったんだけど、文字列チェックが殆どそうなってたよ。逆に動くときあったの?と思いたい。
VMの実装依存だが、Java VMは同じ値の文字リテラルを同じStringのインスタンスに紐付ける実装が多いので、「偶然」動く場合も多い。SUNのVMが確かそうだったかと。 当然NGっちゃNGですし、ユーザからの任意の入力文字列を == で比較してたら破綻するけどね。。
繰り返し比較するところで、String#internと==で高速化したことはあったけど、 ==でサラッと比較しちゃう人はinternの存在自体知らないと思う。
あるあるすぎて辛い