最近有时间,特将JDK8中新增的Optional的常用方法结合自己的使用和理解,总结一下!
Optional 可以看做一个容器:它可以保存各种类型的值,或者仅仅保存null,即Optional 类是一个可以为null的容器对象。Optional的优点是提供很多有用的方法,这样我们就不用显式进行空值检测而实现避免NullPointerException的情况。Optional 的常用方法查看相关源码就可以了解相应的用法。
常用的方法一个有10个,总结如下:
- static Optional of(T value)
获取一个值为非null的Optional实例,如果传入的参数为null,则报NullPointerException;@Test public void test(){ Optional<User> jim = Optional.of(new User("Jim", 20)); User user = jim.get(); System.out.println(user); }
- static Optional empty()
看源码可知,该方法返回值为new Optional();返回一个空的Optional对象;
Optional empty = Optional.empty(); - static Optional ofNullable(T value)
查看该方法源码:
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
查看源码可看出此方法如果入参为null,则返回空的Optional对象,反之,则返回一个指定非null的Optional实例;
@Test
public void test(){
Optional<User> optional = Optional.ofNullable(new User("Jim",20));
User user = optional.get();//获取的user实例为new User("Jim",20)
}
- boolean isPresent()
该方法源码为: