2017-11-14 11 views
-2

Ich versuche, ein Plugin für Gephi und erhalten die folgende Fehlermeldung zu schreiben:Classcast ein Gephi Plugin schreiben

java.lang.ClassCastException: org.gephi.graph.impl.GraphStore$NodeIterableWrapper cannot be cast to org.gephi.graph.api.Node at org.............execute(.....java:92) 

Der Code, in dem der Fehler aufgetreten ist:

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); 

Die letzte Zeile Ursachen der Fehler. Ist es möglich über NodeIterable die Nachbarn als Knoten in die Liste neighborNodes ohne diese Besetzung einzufügen? Ich bin neu beim Schreiben von Java Plugins.

Antwort

0

Gemäß this javadoc, NodeIterable ist ein Iterable von Node s.

So sollten Sie wahrscheinlich eine Schleife verwenden:

NodeIterable iter = graph.getNeighbors(m); 
for (Node n: iter) { 
    neighborNodes.add(n); 
} 

oder addAll und toCollection:

NodeIterable iter = graph.getNeighbors(m); 
neighborNodes.addAll(iter.toCollection()); 
+0

Thank you very much. –