Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Сначала необходимо прочитать Руководство, если Вы уже не имеете. Затем можно продолжить читать Поваренную книгу.
Я думаю, что документы на самом деле довольно хороши в эти дни, пока Вы читаете правильные. Вы действительно не должны потрудиться смотреть на большинство документов для любого имени класса, запускающегося с"Moose::Meta
"если Вы не интересуетесь функциями самоанализа Американского лося. Я попытался сделать это более очевидным в документах Moose.pm, которые с 0,57 говорят Вам читать Руководство и Поваренную книгу сначала.
Если бы Вы происходите из среды выполнения Perl 5 OO "старый школьный путь", я также предложил бы смотреть на Moose::Manual::Unsweetened
документ, который сравнивает Американского лося с эквивалентным Perl 5 "ручным" кодом.
http://moose.perl.org является хорошим центральным ресурсом для всех вещей Американский лось
После того как Вы читаете документы упомянутый Dave, если у Вас есть некоторое понимание о том, как это, возможно, было более доступным или получено Вы от на правой ноге (или просто было легче найти), возможно, требуется внести это в документацию. Разработчики не могут действительно прочитать вводную документацию с точки зрения нового пользователя. Так зарегистрируйте отчет об ошибках (с патчем, возможно) против документации и/или обсудите ее в списке рассылки или irc канале. Это поможет следующему человеку в Вашей обуви.
Взгляните на введение в Американского лося: http://metacpan.org/pod/Moose::Intro
Я нашел этот Краткий справочник Moose бесценным. Я всегда забываю, в каком разделе руководства искать конкретную функцию.