Java8存在的ifPresent使用注意

// 常见的"错误”用法
Optional<Student> optionalStudent = 0ptional.ofNullable(student);
if (optionalStudent.isPresent()) {
    Student theStudent = optionalStudent. get();
    System.out.printIn("optional :" + theStudent.getName());
}
// 正确用法
optionalStudent.map(student1 -> student1.getName()) .ifPresent(System,out:;printin);

// 如果存在,则千点啥
optional.ifPresent(this::callother);
// orElse 和 orElseGet 的区别
无论optional中是否为null,createStudent都执行
Student student = optional.orElse(createStudent());
如果optional中非null则不执行
Student student1 = optional .orElseGet(this::createStudent) ;
// 过滤
optional.filter(student2 -> student2.getAge() > 10).ifpresent(st -> log.info("age > 10 " + st.getName()));
// map 和 fLatMap 的区别
Optional<String> s1 = qptional.latMap(stu -> getStudentName(stu));
0ptional<0ptional<String>> s2 = optional.map(stu -> getStudentName(stu));

扫描二维码,在手机上阅读!

发表评论

电子邮件地址不会被公开。 必填项已用*标注