我想获得一个存储在keystore.xml中的密钥名称列表:
DisplayStyle
不幸的是,Netbeans说它找不到符号keyNameAttribute = keyList.get(i).getAttribute(" name");"。我不明白为什么它不起作用。你有什么主意吗?这是我的代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<keystore>
<key name="key-01">
<Verwendungszweck></Verwendungszweck>
<Generation></Generation>
<Version></Version>
<Algorithmus></Algorithmus>
<Keylength></Keylength>
<Blocklength></Blocklength>
</key>
<key name="key-02">
<Verwendungszweck></Verwendungszweck>
<Generation></Generation>
<Version></Version>
<Algorithmus></Algorithmus>
<Keylength></Keylength>
<Blocklength></Blocklength>
</key>
</keystore>
答案 0 :(得分:3)
基本上,您需要使用泛型。您目前正在使用原始类型 - 因此keyList.get(i)
是Object
类型的表达式。使用增强的for循环(或Java 8流)也会更清晰 - 目前你的for
循环无论如何都有不合适的上限。
我怀疑你想要(pre-Java 8):
List<String> keyNameList = new ArrayList();
Element keystore = document.getRootElement();
for (Element element : keystore.getChildren("key")) {
keyNameList.add(element.getAttribute("name").getValue());
}
(您应该声明您的方法也返回List<String>
。)
如果您已经不熟悉泛型,我会强烈建议您立即阅读它们。它们是现代Java编程中非常重要的一部分。