У меня в моем коде довольно много точек, которые делают:
someStream.collect(Collectors.toList())
где Collectors.toList()
создает новый коллекционер при каждом использовании.
Это приводит меня к вопросу, разрешено ли и целесообразно сделать что-то вроде:
private final static Collector<…> TO_LIST = Collectors.toList()
для каждого типа, который я использую, а затем использовать этот единственный коллекционер, например:
someStream.collect(TO_LIST)
когда требуется сборщик.
Поскольку коллекторы не имеют апатрида и просто набор функций и характеристик, я должен подумать, что он должен работать, но OTOH, Collectors.toList()
создает новый CollectorImpl<>
для каждого вызова.
Каковы недостатки повторного использования Коллектора?