gpt4 book ai didi

java - 是否可以在 JGraph 中使用继承

转载 作者:行者123 更新时间:2023-12-02 04:39:12 25 4
gpt4 key购买 nike

我有一个图表声明为

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 的父类(super class)型。

关于java - 是否可以在 JGraph 中使用继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56528393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com