扩展 SimpleWeightedGraph - JgraphT

Extending SimpleWeightedGraph - JgraphT

我想知道从 JgraphT 库扩展 SimpleWeightedGraph 的正确方法,这样我就可以使用简化的别名,还可以根据需要包含其他功能。

而不是每次都创建一个新图表使用

SimpleWeightedGraph<Node, DefaultWeightedEdge> graph 
= new SimpleWeightedGraph<Node, DefaultWeightedEdge>(DefaultWeightedEdge.class);

我创建了一个class

public class CustomGraph extends SimpleWeightedGraph<Node, DefaultWeightedEdge>{    

    public CustomGraph(){
        super(DefaultWeightedEdge.class);
    }
    /*Additional custom methods*/
}

这样我就可以使用

进行实例化
CustomGraph graph = new CustomGraph();

但这似乎并没有创建对象。我是否为此缺少任何其他构造函数?

好的,我明白了。这是必须包含的带有 edgefactory 构造函数的 class。

public class CustomGraph extends SimpleWeightedGraph<Node, DefaultWeightedEdge>{

    /**
     * Creates a new simple weighted graph with the specified edge factory.
     *
     * @param ef the edge factory of the new graph.
     */
    public CustomGraph(EdgeFactory<Node, DefaultWeightedEdge> ef)
    {
        super(ef);
    }

    /**
     * Creates a new simple weighted graph.
     *
     * @param edgeClass class on which to base factory for edges
     */
    public CustomGraph(Class<? extends DefaultWeightedEdge> edgeClass)
    {
        this(new ClassBasedEdgeFactory<Node, DefaultWeightedEdge>(edgeClass));
    }

}