我想将值传递给注释。例:

@Feature(someVaribleName)


如果someVaribleNamefinal,则表示一切正常。所以这工作正常:

private final String someVaribleName = "test";
@Feature(someVaribleName)
public void testMethod()
{
}


但是我想传递其他信息,这些信息只会在运行时知道,因此无法更改someVaribleName

有什么方法可以将运行时值传递给Java中的注释?

最佳答案

做到这一点的唯一方法是通过代码注入,例如使用Instrumentation

然而,一种更简单的解决方案是使框架使用注释支持反射,例如

@Feature("someVaribleName")


框架将从对象中获取您指定的someVaribleName变量。

或者你可以调用一个方法

@Feature("getSomeName")


并且框架需要调用您配置的方法,即getSomeName

07-25 21:00