Java 9 ifPresentOrElse, возвращающее значение - PullRequest
0 голосов
/ 29 октября 2018

1 / Рабочий код:

public Student process (int id, name){
  Optional<Student> studentOpt = myrepo.findById(id);
  studentOpt.isPresent() {
    return updateStudent(id, name);
  } else {
   return createStudent(id, name);
  }

2 / Я пытаюсь изменить его на «полный лямбда-код» (не работает):

public Student process (int id, name){
  Optional<Student> studentOpt = myrepo.findById(id);
  return studentOpt.ifPresentOrElse(student-> return updateStudent(id, name), () ->  return createStudent(id, name));
}

1 / я должен изменить его на полную лямбду? какой самый чистый?

2 / если да, то как?

1 Ответ

0 голосов
/ 29 октября 2018

Как насчет этого,

return studentOpt
    .map(ignored -> updateStudent(id, name))
    .orElseGet(() -> createStudent(id, name));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...