【发布时间】:2021-11-11 09:49:43
【问题描述】:
我有一个方法,它将集合的元素映射到其他对象并返回包含映射元素的集合。我希望返回的 Collection 与输入 Collection 具有相同的 Collection 类型,但具有不同的元素类型。 我的方法看起来像这样:
<E extends OriginalElement, T extends TargetElement,
C extends Collection<E>, R extends C<T>> R map(C elementsToMap) {
// snip
}
显然R extends C<T> 部分不起作用。
如何将返回类型指定为与类型C 相同的Collection 子类,但使用元素类型T 而不是E?
【问题讨论】:
-
你不能,我不认为,因为例如
ArrayList<String>和ArrayList<Integer>本质上是不相关的类型。