簡體   English   中英

是否可以使用JGraph繼承

[英]Is it possible to use inheritance with JGraph

我有一個圖表聲明為

Graph<MyBase, DefaultEdge> myGraph = new DefaultGraph<MyBase, DefaultEdge>();

我希望能夠保留圖形和邊緣,並用子類型替換基類類型的頂點,例如

for (Mybase mybase : myGraph.vertexSet()) {
   mybase = mySubType;
}

但我認為這不起作用,頂點的類型仍然是MyBase。 這是我用jGraph可以實現的嗎? 以下似乎不起作用

public static <Object, DefaultEdge> void replaceVertex(
      Graph<MyBase, org.jgrapht.graph.DefaultEdge> graph, MyBase vertex,
      MyBase replace) {

    graph.addVertex(replace);
    for (org.jgrapht.graph.DefaultEdge edge : graph.outgoingEdgesOf(vertex))
      graph.addEdge(replace, graph.getEdgeTarget(edge), edge);
    for (org.jgrapht.graph.DefaultEdge edge : graph.incomingEdgesOf(vertex))
      graph.addEdge(graph.getEdgeSource(edge), replace, edge);
    graph.removeVertex(vertex);


  }

replace是基類類型時,這可以正常工作,當replace是子類型時,則頂點丟失。 我怎樣才能做到這一點?

Graph<Number,DefaultEdge> g = new DefaultGraph<>(DefaultEdge.class);
Double mydouble=new Double(5.0);
Integer myInteger=new Integer(4);
g.add(myDouble);
g.add(myInteger);

這很好用:這里,頂點類型是Integer和Double的超類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM