クラスが定数フィールドを定義するとします。
public class Foo {
public static final int CONSTANT_FIELD = 3;
}
また、アノテーション インターフェイスが次のように宣言されているとします。
public @interface Something {
int value();
}
最後に、アノテーションが次のように使用されているとします。
@Something(Foo.CONSTANT_FIELD)
質問:CONSTANT_FIELD
アノテーション プロセッサで、 の値を設定する際の使用からの要素を取得するにはどうすればよい@Something
ですか?
編集:質問自体に具体的な例を含めます。
次のように使用される注釈があります。
@RuleDependency(recognizer = BQLParser.class,
rule = BQLParser.RULE_statement,
version = 0)
注釈プロセッサは、それがクラスRULE_statement
で定義された定数であることを認識する必要があります。注釈のプロパティを設定してfor に直接BQLParser
アクセスできれば、プロパティは不要になります。この注釈は、実際のアプリケーション内で何千回も使用され、常に定数の型を宣言するだけです。この質問を解決すると、アノテーションの使用法が単純化され、次のようになります。Element
BQLParser.RULE_statement
rule
recognizer
recognizer
rule
@RuleDependency(rule = BQLParser.RULE_statement, version = 0)