プロジェクト用の注釈ベースのフレームワークを作成しています。以前は、注釈に静的テキストを渡していましたが、正常に機能していました.サンプルコードは次のとおりです:-
public class MyClass{
@myannotation(name="Hello World")
private int variable;
@myannotation(name="Again Hi")
private int variable1;
}
いくつかの変更により、メソッドから値を取得する最終変数を使用する必要があります。注釈が動的な値を取ることができないことを知っています。ということで、とりあえず修正。名前の値に数値を渡しました。注釈を解析するときに、この数値を定義済みのメソッドに渡すと、その数値に基づいてその値が返されます。そのためのコードスニペットは次のとおりです:-
public class MyClass{
private static final String finalVar1 = getValue("Hello World");
private static final String finalVar2 = getValue("Again Hi");
@myannotation(name="1")
private int variable;
@myannotation(name="2")
private int variable2;
public String getConvetedValue(String value){
if(value!=null && value.equals("1")){
return finalVar1;
}else if(value!=null && value.equals("2")){
return finalVar2;
}
}
}
したがって、上記の例では、リフレクションを使用して注釈パーサーから呼び出された getConvertedValue とパーサーが、注釈からフェッチされたこのメソッドに数値を渡します。
この問題のより良い解決策を提案してください。