gpt4 book ai didi

java - 动态返回Java中所有类变量值的列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:09 24 4
gpt4 key购买 nike

我正在创建一个解析 XML 元素的辅助类,因此开发人员不需要知道 XML 字段的确切名称和大小写。

private static class TagNames{
public static String RESOURCE_ID = "ResourceId";
public static String RESOURCE_NAME = "ResourceName";
public static String RESOURCE_PRICE = "ResourcePrice";
}

这样可以更轻松地执行以下操作:

someXMLParser.getValueByTagName(TagNames.RESOURCE_ID);

我的问题是这样的。如果我想遍历类 TagNames 中声明的所有字段,我该怎么做?伪代码:

For tag in TagNames:
someXMLParser.getValueByTagName(tag)

我知道我可能不得不重组所有这些。但是我想不出一种方法来使名称易于访问和迭代,而不会出现任何重复。

有什么建议吗?

最佳答案

您实际上是在寻求基于 reflection 的解决方案,但我认为在这种情况下 Java Enum 可能是更好的选择。基于 Frederick's example :

public class EnumTest {
public enum Tags {
RESOURCE_ID("ResourceId"),
REOURCE_NAME("ResourceName"),
RESOURCE_PRICE("ResourcePrice");

private final String tagName;
Tags(String tagName) {
this.tagName = tagName;
}

public String getTagName() {
return tagName;
}
}

public static void main(String[] args) {
for(Tags tag : Tags.values()) {
System.out.println("const:" + tag.name()
+ " tagName:" + tag.getTagName());
}
// API user might do e.g.:
// document.getValueForTag(Tags.REOURCE_NAME);
}
}

关于java - 动态返回Java中所有类变量值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4252099/

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