общая итерация foreach для NamedNodeMap

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

там ' нет ничего лучше?

22
задан JGlass 2 November 2017 в 17:32
поделиться