这些方法getSource()和getTarget()的DefaultEdge上org.jgrapht.graph.DefaultEdge保护.
我应该如何访问每个边缘的源和目标顶点返回由edgeSet()的org.jgrapht.graph.SimpleGraph?
下面的代码显示了正在发生的事情.
import java.util.Set;
import org.jgrapht.UndirectedGraph;
import org.jgrapht.graph.DefaultEdge;
import org.jgrapht.graph.SimpleGraph;
public class TestEdges
{
public static void main(String [] args)
{
UndirectedGraph<String, DefaultEdge> g =
new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
String A = "A";
String B = "B";
String C = "C";
// add the vertices
g.addVertex(A);
g.addVertex(B);
g.addVertex(C);
g.addEdge(A, B);
g.addEdge(B, C);
g.addEdge(A, C);
Set<DefaultEdge> edges = g.edgeSet();
for(DefaultEdge edge : edges) {
String v1 = edge.getSource(); // Error getSource() is protected method
String v2 = edge.getTarget(); // Error getTarget() is protected method
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*ina 25
"正确的"的方法来访问边缘源和目标,根据JGraphT邮件列表是使用的方法getEdgeSource(E)和getEdgeTarget(E)从所述接口Interface Graph<V,E>的org.jgrapht
然后修改代码
for(DefaultEdge edge : edges) {
String v1 = g.getEdgeSource(edge);
String v2 = g.getEdgeTarget(edge);
}
Run Code Online (Sandbox Code Playgroud)