首页 > 解决方案 > xxx 类型的构造对象与描述符的返回类型不兼容:T

问题描述

我正在尝试构建一个收集器类,它将我的结果汇总到一个 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) 的类型以使班级尽可能通用,以及如何在供应商中指定类型?

标签: javagenericsjava-8collectorssupplier

解决方案


推荐阅读