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());
  • 相关阅读:
    [JSOI2015]染色问题
    [ZJOI2016]小星星
    [BZOJ4361]isn
    [BZOJ4043/CERC2014]Vocabulary
    [BZOJ3622]已经没有什么好害怕的了
    [BZOJ2958]序列染色
    [SDOI2013]spring
    [Usaco2012 Nov]Concurrently Balanced Strings
    php常用函数集合
    制作item和category的mvc视图总结
  • 原文地址:https://www.cnblogs.com/chenglc/p/8124230.html
Copyright © 2011-2022 走看看