转自:
http://www.java265.com/JavaCourse/202204/2854.html
下文笔者将详细讲述java中Optional对象,如下所示- Optional对象的功能:
- 可使用最简化的代码,并高效的处理NPE(Null Pointer Exception空指针异常)
复制代码 Optional对象的简介
- Optional类是java为平时判断对象是否为空时使用
复制代码 例:- jdk8以前的写法
- User user = new User();
- if (null == user){
- return "user为null";
- }
- jdk8以后可采用以下写法
- User user = new User();
- return Optional.ofNullable(user).orElse("user为null");
复制代码 Optional对象创建
- // 1、创建一个包装对象值为空的Optional对象
- Optional<String> optEmpty = Optional.empty();
- // 2、创建包装对象值非空的Optional对象
- Optional<String> optOf = Optional.of("optional");
- // 3、创建包装对象值允许为空也可以不为空的Optional对象
- Optional<String> optOfNullable1 = Optional.ofNullable(null);
- Optional<String> optOfNullable2 = Optional.ofNullable("optional");
-
复制代码 Optional.get()方法(返回对象的值)
get()方法是返回一个option的实例值- public T get() {
- if (value == null) {
- throw new NoSuchElementException("No value present");
- }
- return value;
- }
- 例:
- User user = new User();
- user.setAge(2);
- Optional.ofNullable(person).get();
复制代码 Optional.isPresent()方法(判读是否为空)
isPresent()方法就是会返回一个boolean类型值,如果对象不为空则为真,如果为空则false- public boolean isPresent() {
- return value != null;
- }
-
- User user = new User();
- user.setAge(2);
- if (Optional.ofNullable(user).isPresent()){
- //写不为空的逻辑
- System.out.println("不为空");
- }else{
- //写为空的逻辑
- System.out.println("为空");
- }
复制代码 Optional.ifPresent()方法(判读是否为空并返回函数)
如果对象非空,则运行函数体
[code] public void ifPresent(Consumer |