アノテーションを利用したアクセサメソッドの自動定義というのは実現可能だろうか?
唐突ですが、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(); } } }
アノテーションやリフレクションに関する知識が乏しいので、自分にはよくわかりませんでした。
アスペクトを織り込むような勢いで、こんなことできたらいいのになぁ〜。という妄想をしてみました。
今日の本
Software Design (ソフトウエア デザイン) 2007年 05月号 [雑誌]
- 出版社/メーカー: 技術評論社
- 発売日: 2007/04/18
- メディア: 雑誌
- クリック: 1回
- この商品を含むブログ (5件) を見る
- 出版社/メーカー: 日経BP出版センター
- 発売日: 2007/03/24
- メディア: 雑誌
- 購入: 1人 クリック: 9回
- この商品を含むブログ (8件) を見る