我正在尝试构建一个收集器类,它将我的结果汇总到一个 TreeMap 中。我在为累加器/结果使用泛型类型时遇到问题。问题出现在我的供应商方法的定义中。
我的班级目前看起来像这样:
public class CollectExclusions<T> implements Collector<CellList, T, T> {
@Override
public Supplier<T> supplier() {
return TreeMap<String, ArrayList<String>>::new;
}
public static <T> CollectExclusions<T> toExclusionsSet() {
return new CollectExclusions<>();
}
}
我调用它如下:
TreeMap<String, ArrayList<String>> exclusions = board.getWords().stream()
.collect(CollectExclusions.toExclusionsSet());
在我的班级中,我需要在哪里指定累加器/结果 (T) 的类型以使班级尽可能通用,以及如何在供应商中指定类型?