1.首先定义2个实体类,并设置get,set方法java
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类型数据this
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())); } }