美文网首页
Java8 Optional 示例

Java8 Optional 示例

作者: 写代码的杰西 | 来源:发表于2021-06-10 10:23 被阅读0次
import lombok.Data;

import java.util.Optional;

public class OptionalTest {
    public static void main(String[] args) {
        Person person = null;
        //会抛出空指针异常
//        Optional<Person> optional1 = Optional.of(person);
        //可以接受空对象不会抛出异常
        Optional<Person> optional2 = Optional.ofNullable(person);
        //是否存在
        System.out.println(optional2.isPresent());
        //orelse 不存在的话就怎么做
        person = optional2.orElse(new Person());
        //or else get 接受一个函数接口
        optional2.orElseGet(Person::new);
        //or else 无论如何都会创建一个新对象。 or else get 则是在需要时才会创建
        //----
        //get方法 获取这个值 不存在时会抛出空指针异常
//        Person person1 = optional2.get();
        //map 方法 把值转换为另一个值
        String name = optional2.map(Person::getName).orElse("default name");
        System.out.println(name);
        //filter 方法 判断在不在条件内
        person.setAge(10);
        Optional<Person> optional3 = Optional.ofNullable(person);
        boolean isLt20 = optional3.map(Person::getAge).filter(a -> a < 20).filter(a->a>5).isPresent();
        System.out.println("is less than 20:"+isLt20);
    }
}

@Data
class Person{
    private String name;
    private Integer age;
}

相关文章

  • Java8 Optional 示例

  • Optional

    Java8中Optional为util包中一个类 创建Optional对象 Optional.of() 传入对象不...

  • JAVA8新特性-Optional类解决NPE问题

    ** JAVA8新特性-Optional类解决NPE问题** API介绍 1、Optional(T value),...

  • Optional源码分析(未完)

    Optional源码分析(未完) Optional 类是Java8的新特性,Optional是一个可以为null的...

  • Optional类

    Optional类为Java8新引入的一个类,Optional是一个可以为null的容器对象,Optional中的...

  • java8 - optional

    optional 是java8的新特性,The purpose of the class is to provid...

  • 【java8新特性 简述】Optional

    Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引...

  • java8中的函数式编程

    作者:刘仁鹏参考资料: 使用 Java8 Optional 的正确姿势 《Java8函数式编程》Richard W...

  • Java8 Optional

    Java8 新增了 Optional 类,可以更加优雅地解决空指针的问题。 构造器 Optional 的构造器是私...

  • 深入JDK中的Optional

    概述:Optional最早是Google公司Guava中的概念,代表的是可选值。Optional类从Java8版本...

网友评论

      本文标题:Java8 Optional 示例

      本文链接:https://www.haomeiwen.com/subject/lhjueltx.html