Ошибка времени выполнения Java: исключение нулевого указателя - PullRequest
2 голосов
/ 24 февраля 2010

Это может быть немного нетрадиционный способ обращения за помощью, но мой код сталкивается с ошибками времени выполнения нулевого указателя, но объем ошибки времени выполнения слишком велик, чтобы отправить его в stackoverflow. Я действительно хочу выяснить это, чтобы я мог отправить один из вас по электронной почте мой код, чтобы выяснить, что не так? Я знаю, что ошибки во время выполнения указывают конкретный номер строки, на которую он срабатывает, но я, честно говоря, не могу понять, почему это происходит. Большое спасибо !!

Трассировка стека:

java.lang.NullPointerException
    at Maze.getNumRandOccupants(Maze.java:118)
    at P4TestDriver.testMaze(P4TestDriver.java:995)
    at P4TestDriver.main(P4TestDriver.java:116)
    at __SHELL8.run(__SHELL8.java:7)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:814)
java.lang.NullPointerException
    at Maze.addRandomOccupant(Maze.java:130)
    at P4TestDriver.testMazeReadWrite(P4TestDriver.java:1071)
    at P4TestDriver.main(P4TestDriver.java:127)
    at __SHELL8.run(__SHELL8.java:7)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at bluej.runtime.ExecServer$3.run(ExecServer.java:814)

1 Ответ

9 голосов
/ 24 февраля 2010

Из вашего комментария:

public int getNumRandOccupants() { return randOccupants.size(); }

Поскольку это верхняя часть трассировки стека, это означает, что поле randOccupants равно нулю в момент вызова этого метода.

Кроме того, если вы получаете еще один NPE на addRandomOccupant, та же самая коллекция, вероятно, также будет нулевой. Скорее всего, вы просто забыли построить коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...