Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Если управление disabled
, оно не может быть отредактировано и , его содержание исключено, когда форма отправлена.
, Если управление readonly
, оно не может быть отредактировано, но его содержание (если таковые имеются) все еще включено с представлением.
Только для чтения не будет "grayout" текстовое поле и все еще отправит значение на обратной передаче.
Думайте об этом с точки зрения браузера. Для только для чтения браузер отправит в паре переменной/значения. Для отключенного это не будет.
Выполнение это, затем посмотрите на URL после удара, отправьте:
<html>
<form action=foo.html method=get>
<input name=dis type=text disabled value="dis">
<input name=read type=text readonly value="read">
<input name=normal type=text value="normal">
<input type=submit>
</form>
</html>
Только для чтения позволит пользователю копировать текст с него. Отключенный не будет.