ClassCastException, пишущий плагин Gephi
Я пытаюсь написать плагин для Gephi и получить следующее сообщение об ошибке:
java.lang.ClassCastException: org.gephi.graph.impl.GraphStore$NodeIterableWrapper cannot be cast to org.gephi.graph.api.Node at org.............execute(.....java:92)
Код, в котором произошла ошибка:
Node[] nodes = graph.getNodes().toArray();
for (Node n: nodes){
.....
List<Node> neighborNodes = new LinkedList<Node>();
for(Node m: nodes){
NodeIterable iter = graph.getNeighbors(m);
neighborNodes.add((Node) iter);
Последняя строка вызывает ошибку. Это возможно через NodeIterable
вставить соседей как узлы в списке neighborNodes
без этого актерского состава? Я новичок в написании плагинов Java.
1 ответ
Согласно этому javadoc, NodeIterable
является Iterable
из Node
s.
Так что вы, вероятно, должны использовать цикл:
NodeIterable iter = graph.getNeighbors(m);
for (Node n: iter) {
neighborNodes.add(n);
}
или же addAll
а также toCollection
:
NodeIterable iter = graph.getNeighbors(m);
neighborNodes.addAll(iter.toCollection());