gpt4 book ai didi

java - 得到奇怪的输出,如 "Values@7d5b6e"而不是某些特定的字符串

转载 作者:行者123 更新时间:2023-12-01 18:43:18 25 4
gpt4 key购买 nike

我得到了名为 Values 的对象,它看起来像这样:

class Values{
private String name;
private String type;
private String value;

public Values(String name, String type, String value)
{this.name = name; this.type = type; this.value = value;}
public String getName()
{return name;}
public String getType()
{return type;}
public String getValue()
{return value;}
}

我的数据模型看起来像这样。我的输入是一个 XML 文件。一个包包含一些类,每个类都有带有名称、类型和值的属性。上面的 Values 类应该代表一个属性。

我使用 Multimaps 来保存此信息。例如,所需的输出是这样的。

[PackageName:[ObjectName1, Values1],
[ObjectName1, Values2],
[ObjectName2, Values1]]

我处理输入 XML 文件的代码是这样的。 For 循环将迭代输入文件的数据结构。

        SAXBuilder builder = new SAXBuilder();
org.jdom2.Document doc = builder.build(input);
Element rootNode = doc.getRootElement();
List<Element> listPackages = rootNode.getChildren();


for(Element packages : listPackages)
{
List<Element> objectInstanceList = packages.getChildren();

for(Element objects : objectInstanceList)
{
Map<String, Multimap<String,Values>> valuesMap = new HashMap<String, Multimap<String, Values>>();

List<Element> listObjectClasses = objects.getChildren();
bdbID = objects.getName();
if (objects.getAttributes().size() == 0)
{
for(Element classes : listObjectClasses)
{
List<Element> listObjectAttributes = classes.getChildren();

for(Element objectAttributes : listObjectAttributes)
{

Multimap<String, Values> mm = HashMultimap.create();
String name = objectAttributes.getAttributeValue("name");
String type = objectAttributes.getAttributeValue("type");
String value = objectAttributes.getAttributeValue("value");
Values v = new Values(name, type, value);
mm.put(classes.getName(), v);
System.out.println(name +":" + type + ":" + value);
System.out.println(v);
}
valuesMap.put(bdbID, mm);
}
}
}
}

最后的 2 个打印用于测试目的,这是我的问题。重新调整两个打印的输出。

输出 1:

Bandwidth:KiloBitPerSecond:50   //Name:Type:Value

输出2:

Dataprocessing.Values@7d5b6e   // Dataprocessing = Java-Package which contains the class.

问题是,为什么我会得到这个奇怪的输出?为此目的使用像 Values 这样的类是错误的吗?如果有人知道更好的想法来做到这一点,我愿意接受一切。

最佳答案

您看到的是Object#toString 的表示。您需要重写该类中的 toString 以提供格式化输出

@Override
public String toString() {
return "Values [name=" + name + ", type=" + type + ", value=" + value + "]";
}

关于java - 得到奇怪的输出,如 "Values@7d5b6e"而不是某些特定的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004541/

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