Java 9 ifPresentOrElse返回值

时间:2018-10-29 05:04:25

标签: java lambda

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 /我尝试将其更改为“完整的lambdas代码”(不起作用):

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 /我应该将其更改为完全lambda吗?什么是最干净的?

2 /如果是,怎么办?

1 个答案:

答案 0 :(得分:1)

怎么样,

return studentOpt
    .map(ignored -> updateStudent(id, name))
    .orElseGet(() -> createStudent(id, name));