В Java, глядя на интерфейс NamedNodeMap , как вы повторить это с помощью дженериков? Кажется, что он использует Node, а не String, но я не совсем уверен, как использовать объекты Node ...
NamedNodeMap namedNodeMap = doc.getAttributes();
Map stringMap = (Map) namedNodeMap;
for (Map.Entry 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());
}
}
там ' нет ничего лучше?