Optional实际应用

Optional实际应用

Optional的常用Api

将集合转化成另一种类型的集合

优点: 较之前更安全的操作集合,省略了判null,链式编程,且方便指定默认值

    /**
     * 将集合转化成另一种类型的集合
     */
    @Test
    public void test0() {
        List<String> list = null;
        //较之前更安全的操作集合,且方便指定默认值
        List<Long> ids = Optional
                .ofNullable(list)
                .map(s -> s
                        .stream()
                        .map(Long::valueOf)
                        .collect(Collectors.toList()))
                .orElse(null);
        System.out.println(ids);
        //改造前,省略了一次if
        if (list != null) {
            ids = list.stream()
                    .map(Long::valueOf)
                    .collect(Collectors.toList());
        }
    }

对集合进行遍历操作

优点: 较之前更安全的操作集合,省略了判null,链式编程

    /**
     * 对集合进行遍历操作
     * 优点省略了判null,链式编程
     */
    @Test
    public void test1() {
        List<String> list = Arrays.asList("优雅","链式编程");
        Optional.ofNullable(list)
                .ifPresent(s -> s.forEach(System.out::println));
        //改造前
        if (list != null) {
            list.forEach(System.out::println);
        }
    }
posted @ 2022-08-19 14:59  进击的小蔡鸟  阅读(227)  评论(0编辑  收藏  举报