else ifのスタイル
前々からJavaのコーディングスタイル上、else ifは気持ち悪いと思っていました。
何が気持ち悪いかをうまく説明するのは難しいのですが、まず、elseとifという2つの事項が一つにまとめられてしまっているため、if文の大事な条件式の部分が後ろに来てしまうのが嫌です。
それに、ソース編集上、ifブロックを移動する場合に、余計なelseが先頭についてしまうので、コードブロックの移動先でまずelseを消すという余計な作業は発生するのにもイライラさせます。そんな手間、大したことないと思う人もいると思いますが、私がイライラするのはその不合理な点です。
前置きが長くなりましたが、今朝、Spring Frameworkのソースを眺めていたら、else ifを次のようなスタイルで書いている部分が目に留まり、ちょっと目から鱗でした。
} else { if (...) { ... } }
elseのブロックの中で、if文のブロックを開始させる。そうか、そんな単純なことで良いのですね。これならif文のブロックはそのブロックはelseから完全に独立になって、編集上もブロック単位のコードのコピーや移動が楽になります。
もちろん、swith文の代わり(つまり条件式の部分が文字列の比較のような)のelse ifは次のように書いた方がよいでしょう。
} else if (...) { ... } else if (...) { ... }
コード・ブロックの移動
IDEA 5では、選択した行やブロックをCtrl + Shift + UpとCtrl + Shift + Downで上下に移動できます。