- - PR -
文字列をequalsで判定する時
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-09 19:13
型の判定はしてないですよ。
等価というのは、strがnullの場合に、同じ動作をするという意味です。 if (testStr != null && testStr.equals("test")) {} if ("test".equals(testStr)) {} の両方とも、strがnullまたはtest以外のときには、if文の中身は実行しないで、strがtestのときに、中身を実行します。 strがnullまたはtestのときには、if文の中身は実行しないで、strがtest以外のときに、中身を実行するコードは if (testStr != null && !testStr.equals("test")) {} と書けますが、普段は if ("test".equals(testStr)) {} こう書いている人は、どういう風に書くのかを知りたいのです。 | ||||||||||||
|
投稿日時: 2008-02-09 19:45
どのような意図で型判定をしていないと言っているのか理解できていませんが testStrがStringで宣言してあるのでnullでなければString及びそのサブクラスであることが保障できるのですよね? そのため文字列としての比較が可能だと 普段どうかいているかと聞かれれば
若しくは
ですね | ||||||||||||
|
投稿日時: 2008-02-09 20:18
一票:
わたなべさんの「気持ち悪い」説と、unibonさんのNPE==good説に賛成票を投じます。 | ||||||||||||
|
投稿日時: 2008-02-09 21:48
結局は好みの問題なんで真剣に相手を論破しようとしても意味ないですよ、と。
mixiのJavaコミュでも不毛な議論になっていたけど、大人ならば適当に「どっちもあり、自分はこっちが好き(嫌い)」で収めましょう。 | ||||||||||||
|
投稿日時: 2008-02-09 22:17
個人が個人用のツールなりを作る分には、その人の好きなように作ればいいんですが。 チーム開発の場合は、コーディングスタイルを合わせたほうがいいですよね? コーディング規約が決められているプロジェクトで、「私はこっちの書き方が好きです、だから決まりには従いません」なんて許されるはずもなく。 | ||||||||||||
|
投稿日時: 2008-02-09 22:29
そりゃ開発の現場では意思統一が必要でしょう。
会議室で意思統一する必要があるんですか? 開発時なんて、自分の好みに出来ないで我慢するのは普通だし。 まあ、…出来ない人は偶にいますが | ||||||||||||
|
投稿日時: 2008-02-10 02:42
自分は予めnullに対して無害化や例外のスローを行うので、
で十分です。 どの方法をとっても間違いではないので、好みの問題ですよね。 わたなべさんの意見に一票。 #なんかこの手のスレッドって定期的に出てきますね。 | ||||||||||||
|
投稿日時: 2008-02-11 14:45
僕も、かつのりさんと同じく、
例外処理やアサートは予め行なっておくので、
です。 リテラルかどうかにかかわらず、比較対象を左に書くことはしません。 逆は「トリッキー」というものです。 |