You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让集合映射方法返回与输入同类型的泛型Collection?

泛型集合映射方法实现疑问

我需要实现一个集合映射方法:接收Collection<A>类型参数,返回同类型的Collection<B>(比如输入Set<A>就返回Set<B>,且编译器能正确推导返回类型)。尝试了几种泛型写法都无法实现:

  • 写法1(不生效):
    public <C extends Collection> C<B> aToB(C<A> coll) {}
    
  • 写法2(无法保证类型一致,编译器报错):
    public <C extends Collection<A>, D extends Collection<B>> D aToB(C coll) {}
    

我知道可以通过多个重载方法分别适配不同集合类型,但想知道有没有统一的实现方式。另外,我不清楚下面这段代码为何编译报错,提示“需要C类型却提供了List”:

public <C extends Collection<String>> C aaa() {
    List<String> a = List.of("AAA");
    return a;
}

内容的提问来源于stack exchange,提问作者elcye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 09:34:53