1

私は(このメソッドからの2番目の答えを使用して)配列を作成しました:

public static LinkedList<Connection>[] map;
...  // later ....
map = (LinkedList<Connection>[]) new LinkedList[count];

そして、プログラムを実行すると、このforループ内の行でNullPointerExceptionが発生します。

for (int j = 0; j < numOfConnections; j++) {
    map[i].add(new Connection(find(s.next()), s.nextDouble(), s.next()));  // NPE!
}

誰かがこの例外がスローされる理由を教えてもらえますか?

4

1 に答える 1

2

配列が作成されるとき、あなたmapはいっぱいです。null各メンバーを自分で初期化する必要があります。

// Initialize.
for (int j = 0; j < numOfConnections; j++) {
//                  ^ I assume this means 'count' here.
    map[j] = new LinkedList<Connection>();
}

// Fill
for (int j = 0; j < numOfConnections; j++) {
    map[j].add(new Connection(find(s.next()), s.nextDouble(), s.next()));
//      ^ BTW I think you mean `j` here.
}

(必要に応じて、2つのステップを組み合わせてください。)

于 2012-12-09T19:54:50.703 に答える