注释中的动态值

时间:2013-04-18 10:19:21

标签: annotations

我正在为我的项目编写一个基于注释的框架。之前我在注释中传递静态文本,它工作正常。这是示例代码: -

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将一个数字传递给从注释中获取的此方法。

请为这个问题建议一些更好的解决方案。

0 个答案:

没有答案