Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. У Вас есть пара опций. Нужно записать файл подавлений для valgrind, который выключает создание отчетов материала, что Вы не продолжаете работать. Python имеет такой файл, например: http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp
Если valgrind не нравится Ваша установка, другая возможность использует libmudflap
; Вы компилируете свою программу с gcc -fmudflap -lmudflap
, и получающийся код оснащен для отладки указателя. Описанный в gcc документах, и здесь: http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging