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()));
}
}