为什么类型L没有任何类型参数,即使它扩展了ArrayList? [重复]

问题描述 投票:0回答:1

这是我的代码:

private <T,L extends ArrayList<? extends T>> L Foo(L<T> list1) {
    L list2 = new ArrayList<T>();

    //more code

}

我正在使用IDEA并获取方法参数的以下错误消息:

Type 'L' does not have type parameters

以及用于创建ArrayList的以下错误消息:

Incompatible types. <br>Required: L <br> Found: java.utils.ArrayList<T>;

为什么会这样? L扩展了ArrayList,所以它应该具有相同的类型参数吗?

java generics type-parameter
1个回答
-1
投票

目前尚不清楚ArrayList<T>是否是L。例如,L可能是MyArrayListImpl<T>

我想这就是你想要的:

private <T> List<T> Foo(List<T> list1) {
    List<T> list2 = new ArrayList<T>();

    //more code

}
© www.soinside.com 2019 - 2024. All rights reserved.