В Java, глядя на интерфейс NamedNodeMap , как вы выполняете его с обобщениями? Кажется, он использует Node, а не String, но я не совсем уверен, как использовать объекты Node ...
NamedNodeMap namedNodeMap = doc.getAttributes();
Map<String, String> stringMap = (Map<String, String>) namedNodeMap;
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
//key,value stuff here
}
Да, я могу видеть, как выполнять итерации без использования обобщений и с регулярным циклом for, но я бы хотел использовать приведенную выше «идиома» для карт. Конечно, проблема может заключаться в том, что, несмотря на название, NamedNodeMap фактически не реализует интерфейс Map! (
Полагаю, тебе просто нужно прикусить пулю и сделать что-то вроде:
/*
* Iterates through the node attribute map, else we need to specify specific
* attribute values to pull and they could be of an unknown type
*/
private void iterate(NamedNodeMap attributesList) {
for (int j = 0; j < attributesList.getLength(); j++) {
System.out.println("Attribute: "
+ attributesList.item(j).getNodeName() + " = "
+ attributesList.item(j).getNodeValue());
}
}
нет ничего лучше?