Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Поиск поднялся эта статья . Я вставил соответствующий текст ниже.
Вот сообщение форума, показывающее пример подготовленных операторов, позволяющих Вам присваивать значение переменной предельному пункту:
http://forums.mysql.com/read.php?98,126379,133966#msg-133966
Однако я думаю, что эта ошибка должна привлечь некоторое внимание, потому что я не могу предположить, что подготовленные операторы в рамках процедуры будут допускать любую оптимизацию времени компиляции процедуры. У меня есть чувство, которое подготовилось, операторы компилируются и выполняются во времени выполнения процедуры, какой проребенок оказывает негативное влияние на эффективность. Если предельный пункт мог бы принять нормальные переменные процедуры (скажите, аргумент процедуры), то база данных могла все еще выполнить оптимизацию времени компиляции на остальной части запроса, в рамках процедуры. Это, вероятно, привело бы к более быстрому осуществлению процедуры. Я не эксперт все же.