package com.example.optionaldemo;import java.util.Optional;/*** OptionalMethod.java* optional解决空指针异常, 减少代码判空,实现函数式编程* @author twotwoseven* 2019年12月31日*/public class OptionalMethod {/*** jdk8之前空判断常用操作* @param student*/public static void jdk8BeforeNullStyle(Student student){if(null!=student){String name = student.getName();if(null!=name&&!"".equals(name)){//to doSystem.out.println("to do ...");}}}/*** jdk8空判断操作optional* 减少代码判空,实现函数式编程* @param student*/public static void jdk8OptionalNullStyle(Student student){Optional.ofNullable(student).map(Student::getName).filter(name->!"".equals(name)).ifPresent(name->{//to doSystem.out.println("to do something...");});}/*** 常用方法测试* @param args*/public static void main(String[] args) {Student student =null;//传null则会抛出异常//Optional<Student> optionalOfNull =Optional.of(student);//可以传nullOptional<Student> optionalOfNullable =Optional.ofNullable(student);if(optionalOfNullable.isPresent()){System.out.println(optionalOfNullable.get());}else{//throw new NullPointerException();}//orElse兜底Student student2 =Optional.ofNullable(student).orElse(new Student(22,"xm"));System.out.println(student2.getName());//对比测试jdk8BeforeNullStyle(student);jdk8OptionalNullStyle(new Student(22,"aa"));}}
最后修改时间:2020-07-01 13:37:33
文章转载自227decision,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




