Избегайте нулевых проверок для сеттеров Java - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть класс Employee, и я устанавливаю его свойства,

Employee emp = new Employee();
if (id != null)
    emp.setId(id);
if (name != null)
    emp.setName(name);
if (dept != null)
    emp.setDepartment(dept);
if (subDept != null)
    emp.setSubDepartment(subDept);

Мой вопрос заключается в том, можем ли мы избежать нулевых проверок для каждого установщика свойств?

Я не могу использовать троичный оператор, как в этом случае сеттер будет вызван, даже если значение равно нулю. Я хочу избежать вызова сеттера, если значение равно нулю.

emp.setName(name!=null?name:null);

1 Ответ

3 голосов
/ 11 апреля 2020

На самом деле, в вашем коде проверка нуля не обязательна: во всех случаях, поскольку вы только что создали объект сотрудника, все его поля равны нулю, тогда, если, например, id не равно нулю, setId будет установите ненулевое значение, если id равно null, то setId ничего не изменит.

Очевидно, что эти соображения имеют смысл, только если конструктор не инициализирует переменные, показанные каким-либо образом.

...