我正在为我的项目编写一个基于注释的框架。之前我在注释中传递静态文本,它工作正常。这是示例代码: -
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将一个数字传递给从注释中获取的此方法。
请为这个问题建议一些更好的解决方案。