gpt4 book ai didi

java - 如何在java中动态检索常量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:33 26 4
gpt4 key购买 nike

我有几个接口(interface)都具有相同的常量 - ID 和 ROOT。我还有一个方法,我向其中传递一个对象,该对象将是这些接口(interface)之一的实现。

我如何根据传入的类动态检索常量的值 - 即我想执行如下操作:

public void indexRootNode(Node node, Class rootNodeClass)
{
indexService.index(node, rootNodeClass.getConstant('ID'),
rootNodeClass.getConstant('ROOT'));
}

在 PHP 中这很容易,但在 Java 中这可能吗?我已经看到使用常量访问器解决了这个问题,但我想直接检索常量。注释在这里也帮不了我。

谢谢

最佳答案

这可以通过使用 reflection 来实现(另见相应的 javadoc )。

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);
}

也许您还必须将值强制转换为相应的类型。

关于java - 如何在java中动态检索常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com