我有一个列表,可以为空;

List<T> list; // may or may not null


我想与消费者处理每个元素。

到目前为止,我知道。

ofNullable(list)
        .map(List::stream)
        .ifPresent(stream -> stream.forEach(e -> {}));


要么

ofNullable(eventDataList).ifPresent(v -> v.forEach(e -> {}));


有没有简单或简洁的方法可以做到这一点?

最佳答案

为了避免丑陋的null检查,请使用orElse(Collections.emptyList())

Optional.ofNullable(eventDataList)
        .orElse(Collections.emptyList())
        .forEach(e -> {});


使用静态导入,非常简洁:

ofNullable(eventDataList).orElse(emptyList()).forEach(e -> {});

07-24 19:26