我有几个接口都具有相同的常量 - ID和ROOT.我还有一个方法,我传递一个对象,这个对象将是这些接口之一的实现.
如何根据传入的类动态检索常量的值 - 即我想要执行以下操作:
public void indexRootNode(Node node, Class rootNodeClass)
{
indexService.index(node, rootNodeClass.getConstant('ID'),
rootNodeClass.getConstant('ROOT'));
}
Run Code Online (Sandbox Code Playgroud)
在PHP中这很简单,但这在Java中是否可行?我已经看到使用常量上的访问器解决了这个问题,但我想直接检索常量.注释也不会帮助我.
谢谢
public void indexRootNode(Node node, Class rootNodeClass)
{
Field idField = rootNodeClass.getField("ID");
Object idValue = idField.get(null);
Field roorField = rootNodeClass.getField("ROOT");
Object rootValue = rootField.get(null);
indexService.index(node, idValue, rootValue);
}
Run Code Online (Sandbox Code Playgroud)
也许您可能需要将值转换为相应的类型.