zoukankan      html  css  js  c++  java
  • java8-Optional

    Optional 容器类:用于尽量避免空指针异常

     * Optional.of(T t) : 创建一个 Optional 实例

     * Optional.empty() : 创建一个空的 Optional 实例

     * Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例

     * isPresent() : 判断是否包含值

     * orElse(T t) :  如果调用对象包含值,返回该值,否则返回t

     * orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值

     * map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()

     * flatMap(Function mapper):与 map 类似,要求返回值必须是Optional

    Optional.of(T t) : 创建一个 Optional 实例

    Optional<Employee> op = Optional.of(new Employee());
    Employee emp = op.get();

    Optional.empty() : 创建一个空的 Optional 实例

    Optional<Employee> op = Optional.empty();

    Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例

    Optional<Employee> op = Optional.ofNullable(null);

    isPresent() : 判断是否包含值

        Optional<Employee> op = Optional.ofNullable(new Employee());
            
            if(op.isPresent()){
                System.out.println(op.get());
            }

    orElse(T t) :  如果调用对象包含值,返回该值,否则返回t

    Employee emp = op.orElse(new Employee("张三"));
            System.out.println(emp);

    orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值

    Employee emp2 = op.orElseGet(() -> new Employee());
            System.out.println(emp2);

    map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()

            Optional<Employee> op = Optional.of(new Employee(101, "张三", 18, 9999.99));
            
            Optional<String> op2 = op.map(Employee::getName);
            System.out.println(op2.get());

     flatMap(Function mapper):与 map 类似,要求返回值必须是Optional

            Optional<String> op3 = op.flatMap((e) -> Optional.of(e.getName()));
            System.out.println(op3.get());
  • 相关阅读:
    yun2win-iOS端IM SDK使用方法
    题解
    普通乘法,加法等时间复杂度计算
    noip2014 解方程(本博文转载于http://blog.csdn.net/popoqqq/article/details/40984859,略有删减)
    检查
    关于对拍 (来自老胡)
    2014 NOIP 赛前自我整理提醒。
    USACO 2014 JAN 滑雪录像
    Vue 双向绑定原理
    Vue 路由
  • 原文地址:https://www.cnblogs.com/chenglc/p/8124230.html
Copyright © 2011-2022 走看看