2017-02-11 13 views
2

注釈を別の注釈を持つメソッドにのみ適用するように制限したい。たとえば、@Aには@Bのメソッドしか使用できません。 @Target注釈タイプでこれを行う直接的な方法はありません。私はこれを達成する方法はありますか?別の注釈を持つメソッドにのみ注釈ターゲットを限定する

+0

あなたは反射を考えましたか? –

+0

@ pm-77-1実行時にリフレクションでその検証を行うことができます。しかし、コンパイル時にこれを強制することが意図されています。 –

+1

'@ A'の意図を' @ B'の要素としてカプセル化できますか?これらが一緒に結合されるべきであるなら、それはもっと意味があるように見えるでしょう。あなたが '@ B'の定義を支配していない限り。 –

答えて

0

私は、別の注釈が存在する場合を除いて、アノテーションの配置を防止するために使用できる言語定義メカニズムがないことを認識しています。 Javaアノテーションは、アノテーションを特定の場所に制限するために使用できる@Targetメタアノテーションを受け入れます。それはできることに最も近いものと思われます。

他にも触れたように、アノテーション処理を拡張してこの機能を追加する必要があります。私はあなたがおそらく少量ではなく、Eclipseのような開発環境にこの種の拡張機能を追加することができると思います。

関連する問題