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

Why does type L not have any type parameters even though it extends ArrayList?

这是我的代码:

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 所以它应该有相同类型的参数对吗?

不知道 ArrayList<T> 是否是 L。例如,L 可能是 MyArrayListImpl<T>.

我想这就是你想要的:

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

    //more code

}