Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Java Service Wrapper может быть то, что вы ищете. Он кроссплатформенный, может использоваться для запуска в качестве службы Windows, захвата ввода-вывода и в целом для полного управления любым Java-приложением. Это очень легкий вес и хорошо продуманный. Atlassian использует его, чтобы обернуть свои продукты (Jira, Bamboo и т. Д.), Так что это проверено в бою.