Optional工具类产生的意义
java代码中最常见的异常就是空指针异常NullPointException,为了防止空指针异常的出现,
会在代码里面做大量的判空处理,这样写出来的代码会显得很丑。java8提供Optional工具类,可以解决判空的问题,同时还还能让代码显得优雅。
Optional工具类,在我看来就是一个单元素的容器,泛型化处理,内部封装了一些方法,可以让你自己决定空处理流程,同时还避免了大量丑陋代码的编写,good!
Optional工具类的简单用法
public class MyOptional {
@Test
public void test1() {
Optional<String> name = Optional.ofNullable(null);
System.out.println("name is present:" + name.isPresent()); //name is present:false
//System.out.println("name value:" + name.get()); throw Exception
System.out.println("name value:" + name.orElse("none")); //name value:none
System.out.println("name value:" + name.orElseGet(() -> "none")); //name value:none
System.out.println(name.map((s) -> s + " hello! ").orElse("none hello!")); //none hello!
}
@Test
public void test2() {
Optional<String> name = Optional.ofNullable("cy");
System.out.println("name is present:" + name.isPresent()); //name is present:true
//System.out.println("name value:" + name.get()); throw Exception
System.out.println("name value:" + name.orElse("none")); //name value:cy
System.out.println("name value:" + name.orElseGet(() -> "none")); //name value:cy
System.out.println(name.map((s) -> s + " hello! ").orElse("none hello!")); //cy hello!
}
}