Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Используйте другой % в строке формата:
SQL.Text := Format('select foo from bar where baz like ''%s%%''',[SearchTerm]);
Обязательный: http://xkcd.com/327/ :-)
В зависимости от контекста, Ваш подход мог бы быть уязвим для Внедрения SQL. Если бы критерий поиска прибывает из ввода данных пользователем, вероятно, было бы лучше использовать параметризированный запрос или по крайней мере попытаться санировать вход.