public static <E> Collector<E, ?, List<E>> singleElementCollector() {
Collector<E, ?, List<E>> listCollector = Collectors.toList();
return Collector.of(
(Supplier<E>)listCollector.supplier(),
(BiConsumer<List<E>, E>)listCollector.accumulator(),
(BinaryOperator<List<E>>)listCollector.combiner()
);
}