В Java запрещено использовать null в методах, которые представляют необязательные параметры, по нескольким причинам:
- Невозможность указать в системе типов, разрешено ли значение null. 1 Значение по умолчанию для неинициализированной ссылки равно null. 1 Это означает, что ссылка может быть нулевой по двум причинам: произошла ошибка, и значение не было инициализировано должным образом, или значение намеренно равно null, чтобы указать на отсутствие необязательного значения. 1 Поскольку код не может провести различие между этими двумя случаями, ошибка может остаться незамеченной. 1
- Необходимость документировать, что null является допустимым значением. 1 Кроме того, человеку, использующему метод, придётся постоянно обращаться к документации, чтобы узнать, может ли этот параметр иметь значение null. 1
Для представления необязательных параметров в Java рекомендуется использовать другие подходы, например, перегрузку метода, когда в классе одна и та же сигнатура метода определяется несколько раз с разными параметрами. 2