アノテーションの有効範囲

最近、id:t_yano 氏の流儀に沿うために、フィールドを宣言する際は default アクセス修飾子を使うようにしています。
ですが、Teeda とかで開発する際はもう public アクセス修飾子の方が簡単なので、こっちを多用するようにしました。
そんなことをやってると、こんなことにハマりました。
アノテーションで Converter を適用させてやろうと思っても、効かない!


サブアプリケーションで共通の処理を行おうと、抽象クラスを用意して、各 Page クラスで継承するようにしてあるんですが、この抽象クラスのフィールドに対してアノテーションをつけても認識してくれないんですよね。
ソースを追っていくと、Class.getDeclaredFields() を呼んでいるので、親クラスのフィールドって読みにいかないんですよね。
仕方がないので、抽象クラスとかで Converter とかを適用する場合は、getter メソッドを作ってアノテーションをつけてやるようにしました。こうすると期待通り動きます。
まぁ、仕方ないんでしょうけど・・・。