Не существует такой вещи, вы могли бы сделать вспомогательный метод, который в основном будет:
.collect(
Collectors.collectingAndThen(
Collectors.toList(),
x -> x.isEmpty() ? null : x)
);
Но вы тут напрашиваетесь на неприятности. Просто верните этот пустой список вместо null
, если только вы не хотите, чтобы абоненты в конечном итоге вас ненавидели.
Если вы действительно хотите такой коллекционер:
static class PlzDont<T> implements Collector<T, List<T>, List<T>> {
@Override
public Supplier<List<T>> supplier() {
return ArrayList::new;
}
@Override
public BiConsumer<List<T>, T> accumulator() {
return List::add;
}
@Override
public BinaryOperator<List<T>> combiner() {
return (left, right) -> {
left.addAll(right);
return left;
};
}
@Override
public Function<List<T>, List<T>> finisher() {
return x -> x.isEmpty() ? null : x;
}
@Override
public Set<Characteristics> characteristics() {
return Set.of();
}
}