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のあたりはこっちの本でも十分カバーしてくれる。

Java 5.0 Tiger (開発者ノートシリーズ)

Java 5.0 Tiger (開発者ノートシリーズ)

*1:1stのItem 21、邦訳のP98参照