2015-06-11 26 views
2

我想知道從JgraphT庫擴展SimpleWeightedGraph的正確方法,這樣我就可以使用簡化的別名,並且還可以根據需要添加其他功能。擴展SimpleWeightedGraph - JgraphT

而不是使用

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

每次創建一個新的圖形我創建了一個類

public class CustomGraph extends SimpleWeightedGraph<Node, DefaultWeightedEdge>{  

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

所以,我可以使用

CustomGraph graph = new CustomGraph(); 

實例但這似乎並不創建對象。我是否缺少其他任何構造函數?

+0

什麼不行?它不編譯?它在運行時失敗? –

+0

對不起,這是模糊的。我現在編輯它。該對象不會被創建。 – Steve

回答

0

好吧我想通了。這裏是必須包含邊緣構造函數的類。

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)); 
    } 

}