0
点赞
收藏
分享

微信扫一扫

Java8 Optional类


避免空指针异常。


package com.expgiga.Java8;

import java.util.Optional;

/**
 *
 */
public class TestOptional {
    /*
     * Optional.of(T t):创建实例
     * 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
     *
     */
    public static void main(String[] args) {
        Optional<Employee> op = Optional.of(new Employee());
        System.out.println(op.get());

        Optional<Employee> op1 = Optional.empty();
        System.out.println(op1.get());

        Optional<Employee> op2 = Optional.ofNullable(new Employee());
        System.out.println(op2.get());

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

        Employee emp = op3.orElse(new Employee("ss", 16, 2000, Employee.Status.FREE));
        System.out.println(emp);

        Employee emp1 = op3.orElseGet(() -> new Employee());
        System.out.println(emp1);

        //map
        Optional<Employee> op4 = Optional.ofNullable(new Employee("ss", 16, 2000, Employee.Status.FREE));
        Optional<String> str = op4.map((e) -> e.getName());
        System.out.println(str.get());

        //flatMap
        Optional<String> str2 = op4.flatMap((e) -> Optional.of(e.getName()));
        System.out.println(str2.get());
    }
}



举报

相关推荐

0 条评论