1.首先定义2个实体类,并设置get,set方法

public class Employee {

    private String name;

    public Employee(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class Company {

    private String name;

    private List<Employee> employeeList;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Employee> getEmployeeList() {
        return employeeList;
    }

    public void setEmployeeList(List<Employee> employeeList) {
        this.employeeList = employeeList;
    }
}

2.编写测试类,杜绝使用传统方试使用Optional

public class OptionalTest {


    public static void main(String[] args) {

        Optional<String> optional = Optional.of("hello");

//        if(optional.isPresent()){
        //传统方式使用Option
//            System.out.println(optional.get());
//        }

        //推荐Option使用方式
        optional.ifPresent(item-> System.out.println(item));

        Optional<String> optional2 = Optional.empty();
        optional2.ifPresent(item-> System.out.println(item));//为空就不执行也不报错


        System.out.println(optional.orElse("world"));
        //为空就不执行也不报错

        System.out.println(optional.orElseGet(()->"nihao"));


        Optional<String> optional3 = Optional.ofNullable("hello3");
        optional3.ifPresent(item-> System.out.println(item));
        //返回空集合  不要返回null

    }

}

3.编写测试类,处理List类型数据

public class OptionalTest2 {

    public static void main(String[] args) {

        Employee employee = new Employee("zhangsan");
        Employee employee2 = new Employee("lisi");

        Company company = new Company();
        company.setName("company1");//如果注释该行代码,系统不会报错

        List<Employee> list = Arrays.asList(employee,employee2);
        company.setEmployeeList(list);

        Optional<Company> optional = Optional.ofNullable(company);

        System.out.println(optional.map(
                theCompany->theCompany.getEmployeeList()).orElse(Collections.emptyList()));

    }

}
09-22 01:20