我得到了我所謂的價值的對象,它看起來像這樣:得到奇怪的輸出,如「@值7d5b6e」,而不是某些特定字符串
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文件。一個包包含一些類,每個類都有一個名稱,一個類型和一個值。上面的類值應該代表一個屬性。
我使用Multimaps來保存這些信息。例如,期望的輸出就像這樣。
[PackageName:[ObjectName1, Values1],
[ObjectName1, Values2],
[ObjectName2, Values1]]
我的代碼來處理輸入XML文件是這樣的。 For-loops將迭代輸入文件的數據結構。
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:
[email protected] // Dataprocessing = Java-Package which contains the class.
的問題是,爲什麼會出現這種奇怪的輸出?爲此目的使用像Value這樣的類是錯誤的嗎?如果有人知道一個更好的想法做到這一點,我對任何事情都是開放的。
感謝,偉大的作品,沒有想過這件事。 Reimus更快,所以我接受了他的回答,但你的回答也一樣好。 – Alika87
沒有問題,它有幫助。很高興:) –