2004年12月 3日

ぬるぽ

String str = hoge.getHogeHogeString();
if ( str.equals("hage") ) { /* */ }

とかやると、ぬるぽが出てしまう恐れがある。

通常は

String str = hoge.getHogeHogeString();
if ( str!=null && str.equals("hage") ) { /* */ }

とするだろう。最初の条件で && 以降をやらなくていいと判断したら、次の式は評価しないというK&R時代からの思想を受け継ぐ書き方である。

しかし、変数strが勿体無い。

if ( hoge.getHogeHogeString()!=null && hoge.getHogeHogeString().equals("hage") ) { /* */ }

は書き方として冗長すぎる。

ということで、ボク的にオススメなのは

if ( "hoge".equals(hoge.getHogeHogeString()) ) { /* */ }

である。文字列リテラルも String 型なので、それのメソッドを呼べてしまうのである。

しかし、本当のオススメはJavaを採用しないことだ。

Posted by rukihena at 23:46:09
コメント