合并 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));
我的代码中有两个方法:
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));