扩展 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));
}
}
我想知道从 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));
}
}