Java 如何创建星图?

Java 如何创建星图?,java,jgrapht,Java,Jgrapht,我正在尝试使用JGraphT创建星图,但是我所写的对于编译器来说似乎是错误的。我得到的是标记为NULL POINTER的行上的NullPointerException。为什么呢 private static DefaultWeightedEdge edge(int i, int j) { DefaultWeightedEdge graphEdge = Graph.getEdge(i,j); return graphEdge; } private static int verte

我正在尝试使用JGraphT创建星图,但是我所写的对于编译器来说似乎是错误的。我得到的是标记为NULL POINTER的行上的NullPointerException。为什么呢

private static DefaultWeightedEdge edge(int i, int j) {
    DefaultWeightedEdge graphEdge = Graph.getEdge(i,j);
    return graphEdge;
}

private static int vertex(int i) {
    int vertex = VertexArray[i-1];
    return vertex;
}

private static void setWeight(DefaultWeightedEdge edge, double weight) {
    Graph.setEdgeWeight(edge, weight); //NULL POINTER
}


private static SimpleWeightedGraph<Integer, DefaultWeightedEdge> createWeightedGraph() {
    Graph = new SimpleWeightedGraph<Integer, DefaultWeightedEdge>(DefaultWeightedEdge.class);

    for (int i = 0; i < numberOfVertices; i++) {
        VertexArray[i] = i+1;
        Graph.addVertex(vertex(i+1));
    }

    for (int i = 1; i <= numberOfEdges; i++) {
        DefaultWeightedEdge edge = Graph.addEdge(vertex(1), vertex(i+1)); 
    }

    for (int i = 1; i <= numberOfEdges; i++) {
        setWeight(edge(1, i), 0.95);} //NULL POINTER

   //I would like to start group of threads here
    service=Executors.newFixedThreadPool(manNum);
        for(int k=0; k < manNum; k++){
            ManufacturePattern manPat=new ManufacturePattern(k);
            service.submit(manPat);
        }

    return Graph;
}

你确定G.getEdgei,j;返回一个值?附言:你一定要按照你的命名惯例来做……我想是的。我在另一个程序中使用了类似的方案,它在那里工作。我将编辑名称;当第一行标记为NULL POINTER的异常出现时进行编辑,那么这仅仅意味着您的图形为NULL。如果异常实际上来自setedgewight方法内部,那么您的边很可能为null,因为图中没有边1,i。毫无疑问,提供一个静态地狱有什么原因吗?如果没有完整的代码,很难判断是什么导致图形为空。您想知道,还是知道但想知道为什么?如果你知道这是什么,我想这应该有点清楚。