gpt4 book ai didi

Java泛型,嵌套类型参数

转载 作者:行者123 更新时间:2023-12-02 08:23:31 28 4
gpt4 key购买 nike

我想创建一个获取 Collection<T> 的通用方法作为参数,对元素执行某些操作(映射)并返回 Collection<R> 。这不是问题,声明如下:

public <R,T> Collection<R> foo(Collection<T> c);

现在,我想强制我的方法返回与参数相同类型的集合,因此不需要将返回值强制转换为特定集合。像这样的事情:

public <R, T, S extends Collection> S<R> foo(S<T> c);

遗憾的是,这无法编译。

这可以以某种方式完成吗?正确的做法是什么?

最佳答案

如果您想使用泛型,一种方法是执行以下操作:

public <R, S, CR extends Collection<R>, CS extends Collection<S>> CR foo(CS c);

问题是将您的参数和返回值绑定(bind)到一个类型。

关于Java泛型,嵌套类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40163588/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com