Optional类的filter方法

    技术2022-07-11  81

      filter方法可对Optional内对象进行过滤。

    1. 准备类

    public class Staff { String name; Integer age; public Staff(){ } public Staff(String name, Integer age){ this.name = name; this.age = age; } ... // getter setter }

     

    2. 示例

    @Test void filterOptionalTest(){ ArrayList<Staff> staffList = new ArrayList<>(); staffList.add(new Staff("Jerome",28)); staffList.add(new Staff("Chris",44)); System.out.println("----------------List Stream Filter--------------------------"); String name = staffList.stream().filter(s -> s.getAge() < 30).map(s -> s.getName()).findFirst().orElseGet(() -> "Null"); System.out.println(name); System.out.println("----------------Optional Filter--------------------------"); name = Optional.ofNullable(staffList.get(0)).filter(s -> s.getAge() > 30).map(s -> s.getName()).orElse("Null"); System.out.println(name); name = Optional.ofNullable(staffList.get(1)).filter(s -> s.getAge() > 30).map(s -> s.getName()).orElse("Null"); System.out.println(name); }

    显示

    ----------------List Stream Filter-------------------------- Jerome ----------------Optional Filter-------------------------- Null Chris

    Processed: 0.012, SQL: 9