我似乎对使用/理解集有问题。在JGraphT
中有一个函数edgeSet()
。我想将所有边存储在数组中,所以我这样做了:
DefaultWeightedEdge edgesContained[]= (DefaultWeightedEdge[]) Graph.edgeSet().toArray(); //compiler returns this line as one with error
for ( int i=0; i<=numberOfEdges; i++) {
setRandomWeight(edgesContained[i], randomWeight());
}
但我得到的输出是
线程中的异常&#34; main&#34; java.lang.ClassCastException:[Ljava.lang.Object;无法投射到[Lorg.jgrapht.graph.DefaultWeightedEdge;
为什么这样,它应该如何正确?
答案 0 :(得分:1)
Graph.edgeSet().toArray()
将返回Object[]
,无法转换为DefaultWeightedEdge[]
。而是使用Graph.edgeSet().toArray(new DefaultWeightedEdge[0])
。