アノテーションを利用したアクセサメソッドの自動定義というのは実現可能だろうか?
唐突ですが、JavaBeansってのがありますよね。例えばこんなクラス。
class TestBeans { private int number; private int positiveNumber; public void setNumber(int number) { this.number = number; } public int getNumber() { return number; } public void setPositiveNumber(int positiveNumber) throws Expection { if(positiveNumber > 0) { this.positiveNumber = positiveNumber; } else { throw new Expection(); } } public int getPositiveNumber() { return positiveNumber; } }
しかし、フィールドの数が増えてくると、コードがどんどん冗長になってくると思います。
そこで、ふと思ったのですが、リフレクションとアノテーションを使って、下記のようにスッキリとアクセサメソッドが定義できたりしないかなぁ、と。アノテーションを付けるだけで、アクセサメソッドが使える。で、普通じゃない処理をするアクセサメソッド(上記の例ではsetPositiveNumber)はしっかり記述する、と。
class TestBeans { @Setter @Getter private int number; @Getter private int positiveNumber; public void setPositiveNumber(int positiveNumber) throws Expection { if(positiveNumber > 0) { this.positiveNumber = positiveNumber; } else { throw new Expection(); } } }
アノテーションやリフレクションに関する知識が乏しいので、自分にはよくわかりませんでした。
アスペクトを織り込むような勢いで、こんなことできたらいいのになぁ〜。という妄想をしてみました。