2 回答
TA贡献1830条经验 获得超3个赞
使用Optional.map.
如果你想避免直接Optional.get(),你需要改变你的方法的流程,所以Optional分支,而不是 if 语句。
return subjectInfo.getSubjectName().map(it -> myHomework.writeThesis(
it,
syllabusAndClass.getSyllabus(),
syllabusAndClass.getClass(),
)).orElseGet(() -> /*defaultCodeForNull*/)
TA贡献1804条经验 获得超2个赞
如果subjectInfo是空的,那么你会NullPointerException在这一点上得到
subjectInfo.getSubjectName().get()
所以我建议使用orElse(T other)in Optional,如果对象存在,它将返回它,否则它将返回传递的默认值
public T orElse(T other)
如果存在则返回值,否则返回其他值。
subjectInfo.getSubjectName().orElse("Default subject name")
或者只是你可以检查使用isPresent()
else if(subjectInfo.getSubjectName.isPresent()) {
return myHomework
.writeThesis(subjectInfo.getSubjectName().get(),
syllabusAndClass.getSyllabus(),
syllabusAndClass.getClass(),
);
}
添加回答
举报