合并 Java 8 个选项

Combining Java 8 Optionals

我的代码中有两个方法:

Optional<CourseId> getCourseId(){
// returns just 1 course    
}

Optional<StudentId> getStudentId(CourseId courseId){
//returns an optional studentId
}

我试图将这两种方法结合起来得到这样的东西:

Optional<CourseId> crsid = getCourseId();
if ( crsid.isPresent() ){
    return getStudentId(crsid.get());
}
else{
    return Optional.empty()
}

如何将上述逻辑组合成可选映射?

使用Optional::flatMap方法

return getCourseId().flatMap(id -> getStudentId(id));