Collatz Conjectureの特定の数列のパターンを視覚化するためのツールとしてannasライブラリを使用しています。私はこのコードを実行しています:
GraphDrawer<BigInteger, DefaultArc<BigInteger>> drawer = new GraphDrawer<BigInteger, DefaultArc<BigInteger>>(graph);
BufferedImage image = new BufferedImage(1000, 1000, BufferedImage.TYPE_3BYTE_BGR);
drawer.draw(image);
そして、それはこのエラーをスローします:
Exception in thread "main" java.lang.NullPointerException
at annas.graph.drawing.GraphDrawer.draw(GraphDrawer.java:88)
at Driver.main(Driver.java:36)
graph
null ではないと安全に仮定します。を投げるとは何NullPointerException
ですか?
見知らぬ人の要求に従って:
/**
* Draws the graph
*
* @param buffImage
* Image to draw the graph on
* @return graphical representation of the graph
*/
public BufferedImage draw(BufferedImage buffImage) {
Map<N, int[]> map = this.placer.place(this.graph, sizeX, sizeY);
ArrayList<N> nodeSet = this.graph.getNodeMap();
ArrayList<A> arcSet;
Graphics2D graphic = buffImage.createGraphics();
for (N node : nodeSet) {
arcSet = this.graph.getArc(node);
this.nodeDrawer.drawNode(graphic, node, map.get(node)[0], map
.get(node)[1]);
for (A arc : arcSet) {
this.arcDrawer.drawArc(graphic, arc, map.get(node)[0], map
.get(node)[1], map.get(arc.getHead())[0], map.get(arc
.getHead())[1]);
}
}
return buffImage;
}
行 88 はメソッドの最初の行です (ここmap
で初期化されます)。