Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Язык не поддерживает такой синтаксис.
Обычным обходным решением для этих ситуаций (*) является использование значения по умолчанию, которое не является допустимым.
def func(n=5.0, delta=None):
if delta is None:
delta = n/10
(*) Аналогичные проблемы возникают, когда значение по умолчанию изменено.
Вы не можете сделать это в самой строке определения функции, вам нужно сделать это в теле функции:
def func(n=5.0,delta=None):
if delta is None:
delta = n/10
Вы могли бы сделать:
def func(n=5.0, delta=None):
if delta is None:
delta = n / 10
...