Лучшая практика для проверки нуля и установки данных - PullRequest
0 голосов
/ 13 июля 2020

У меня есть этот фрагмент кода, проверяющий нулевое условие и устанавливающий данные, как показано ниже

public EmployeeVO  buildEmpVO(EmpInfo empInfo) {
        EmployeeVO empVo = new EmployeeVO();
        if(empInfo.getEmpObject()!=null)
        {
        empVo.setLength(empInfo.getEmpObject().getMonths());
        }
        else
        {
            empVo.setLength(0);
        }
        
        return empVo;
    }

Этот код работает, но все равно есть, код можно улучшить.

Ответы [ 3 ]

0 голосов
/ 13 июля 2020

Если вы используете java 8, вы можете сократить код, используя Optional.

  public EmployeeVO  buildEmpVO(EmpInfo empInfo) {
    EmployeeVO empVo = new EmployeeVO();
    Optional.of(empInfo.getEmpObject()).ifPresentOrElse(empObject -> empVo.setLength(empObject.getMonths()),
        () -> empVo.setLength(0));
    return empVo;
  }

Но это так же хорошо, как и используемый вами подход.

0 голосов
/ 13 июля 2020

Я бы использовал Optional для этой задачи (предполагая, что getMonths() возвращает int):

int length = Optional.ofNullable(empInfo.getEmpObject())
                        .map(empObj -> empObj.getMonths()).orElse(0);
empVo.setLength(length);

Или, если вы предпочитаете одну строку:

empVo.setLength(Optional.ofNullable(empInfo.getEmpObject()).map(empObj -> empObj.getMonths()).orElse(0));
0 голосов
/ 13 июля 2020

Ну, один из способов сделать код немного проще для чтения - это определить переменную для хранения объекта сотрудника:

public EmployeeVO buildEmpVO(EmpInfo empInfo) {
    EmployeeVO empVo = new EmployeeVO();
    EmpObject eo = empInfo.getEmpObject();

    if (eo != null) {
        empVo.setLength(eo.getMonths());
    }
    else {
        empVo.setLength(0);
    }
    
    return empVo;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...