Effective Java second editionを読む-5
ジェネリクスが相変わらず不完全燃焼だけど、とりあえず昨日はenumとアノテーションの項を読んだ。
Enumの項
・予想通り1stにあったタイプセーフenumパターン*1の説明はなくなり、JDK5のenumに置き換わっていた。1st読んだ時タイプセーフenumパターンで感動したのでちょっと残念。名前だけ出てきて具体的なコード例がないという状態なので、今後2ndから読む人は別途調べる必要が出てくるかも。
・全体的に、 static final なint、String、ビット演算を使った例を挙げる→問題点を指摘→それをenumを使ってスマートに解決、 な流れ。
・自分はEnumSet、EnumMapを全然使ってないことに気づいた。
・enumごとに異なる実装を持たせて処理を切り替えるのを、筆者は「strategy enum パターン」と呼んでた。で、実際にstratege enumパターンをやってみるとenumを継承してサブクラスで処理パターンを追加したくなるんだけど、enumは継承不可なんで悩む。
・→今回はそんなときの解決案も載ってた。これも参考になった。
アノテーションの項
・JUnit4ライクなテストメソッドのアノテートをベースに解説。わかりやすい。
・標準アノテーションは意外と説明が少ない。@Overrideの使用を習慣づけようって話くらい。メタアノテーションRetentionPolicyやElementTypeにはどんな種類があるか、ってのも説明がなかったので(それぞれRUNTIMEとMETHODくらいしかなかった)、あらかじめ別な入門書で一通り知っておいたほうがいいだろう。
おまけで副読書:
もはや4年前の本だけど、JavaSE5.0の解説は開発者ノートシリーズが有用。170ページ足らずなのに密度が濃い。enumのあたりはこっちの本でも十分カバーしてくれる。
- 作者: ブレットマクラフリン,デイビッドフラナガン,Brett McLaughlin,David Flanagan,菅野良二
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/12
- メディア: 単行本
- 購入: 1人 クリック: 32回
- この商品を含むブログ (40件) を見る
*1:1stのItem 21、邦訳のP98参照