Optional

mac2022-06-30  31

解决Java中空指针异常的问题(NPE NnullPointerException)

代码示例:

public class MyTest10 { public static void main(String[] args) { Employee emp1 = new Employee("zhangsan"); Employee emp2 = new Employee("wangwu"); Company company = new Company("cmzy", Arrays.asList(emp1,emp2)); //创建一个Option,可为空也可不为空 Optional<List<Employee>> optional = Optional.ofNullable(company.getEmpList()); //如果optional中的list不为空,则打印出list中的每个元素 optional.ifPresent(list -> { list.forEach(employee -> System.out.println(employee.getName())); }); //如果optional中list不为空则返回list,如果为空,则返回 ()-> Arrays.asList(emp1,emp2) Supplier中创建的list List<Employee> empList = optional.orElseGet(()-> Arrays.asList(emp1,emp2)); empList.forEach(employee -> System.out.println(employee.getName())); Optional<Company> companyOptional = Optional.ofNullable(company); //optional中map方法接受一个Function函数式接口,并且返回一个Optional,下面代码意思将companyOptional中的value作为Function中apply的参数传入,返回company.getEmpList() //同时返回的参数作为参数 Optional.ofNullable(mapper.apply(value)),创建一个新的option,如果创建的optional是空,则返回Collections.EMPTY_LIST companyOptional.map(theCompany -> theCompany.getEmpList()).orElse(Collections.EMPTY_LIST); } }
最新回复(0)