generische foreach-iteration NamedNodeMap

In Java, mit Blick auf die NamedNodeMap - Schnittstelle, wie Sie die Iteration mit Generika? Es scheint Node benutzen anstatt als String, aber ich bin nicht so sicher über die Verwendung von Node-Objekten...

NamedNodeMap namedNodeMap = doc.getAttributes();
Map<String, String> stringMap = (Map<String, String>) namedNodeMap;
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
  //key,value stuff here
}

Ja, ich kann sehen, wie die Iteration ohne die Verwendung von Generika und mit einer regulären for-Schleife, aber ich würde gerne die oben genannten ?idiom? für Karten. Natürlich, das problem scheint zu sein, dass, trotz des namens, NamedNodeMap nicht wirklich Implementierung der Map-Schnittstelle! 🙁

Denke, man muss einfach nur den sauren Apfel beißen hier und tun so etwas wie:

/*
 * 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());
    }
}

es gibt nichts schöneres?

InformationsquelleAutor der Frage Thufir | 2010-11-13

Schreibe einen Kommentar