Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Это не взаимоисключающий выбор, можно работать и в одной системе, таким же образом тот жемчуг и php (например), выполняются бок о бок во многих системах.
существует хорошее сообщение здесь по подобной теме, которая предлагает использовать сокеты для передачи между обоими языками -
, Если Вы хотите пойти PHP<-> маршрут Lisp самая легкая вещь сделать состояла бы в том, чтобы заставить PHP связаться с Вашим процессом Lisp с помощью сокетов.
Этот подход действительно все еще уезжает, Вы с потенциалом добавили сложность и проблемы обслуживания, которые Вы получаете от наличия 2 языков в Вашем проекте, но могли бы быть пригодным для своего конкретного варианта использования.
Вы, скорее всего, не хотели бы писать код в PHP, как только Вы начали разрабатывать в Lisp. (Новая капитализация с тех пор приблизительно 80-е, между прочим)
Hunchentoot является популярным сервером, который дает Вам основы с точки зрения соединяющихся диспетчеров к запросам. Существует серия экранные демонстрации при записи клона reddit по LispCast.com
сеть UnCommon (походит на игру слов на описании Peter Norvig Схемы в PAIP), от того, что я могу сказать более полной платформе, базирующейся в большой степени на идее продолжений, во многом как Побережье для Smalltalk.
Weblocks является еще одной основанной на продолжении веб-платформой, которая выглядит хорошей. Автор (в defmacro.org
) пишет хорошие статьи, и мне нравится то, что я видел в демонстрационном приложении для Weblocks.
Я нахожусь в в значительной степени той же ситуации в данный момент. У меня есть много PHP под моим поясом, но язык действительно начинает раздражать меня. Я экспериментировал с различными языками, но чинил много со схемой недавно, и я рассматриваю постепенный переключатель. Возможно, мы должны запустить группу пользователей или что-то?
Происхождение из среды PHP, Вы, вероятно, привыкли к работе с тонким уровнем абстракции к протоколу HTTP. Я думаю, что это - что-то, что на самом деле облегчает переходить на новый язык; Особенно один, где нет одной доминирующей платформы. Таким образом у PHP и сообщества Lisp есть некоторые общие черты (Но также - другие фрагментированные платформы с открытым исходным кодом, такие как Python и Perl).
Одна проблема с Lisp состоит в том, что существуют так многие для выбора из. Я решил, что предпочитаю Схему по языку Common LISP, так, чтобы сузил его немного. После некоторого экспериментирования я теперь фокусируюсь на plt-схема , которая, кажется, одна Схема с большей частью импульса. Среди других вещей этому связали веб-сервер им.
К сожалению, я не могу придумать ни одной библиотеки для этого, однако я находился в аналогичной ситуации, когда у меня был PHP-код, но я устал от «попыток» кодировать логику (игровую логику) в PHP, поэтому я использовал PHP сокеты для подключения к Lua, таким образом, теперь я программирую всю серверную логику на Lua и использую PHP (настройка LAMP) в качестве внешнего сервера.
Надеюсь, что это помогает.
Для нормальной разработки веб-страниц на PHP, Айв создал библиотеку под названием xilla_tags.
Обзор здесь
На сайте программных программ Jacob Hanssens также есть несколько хороших методов.