为什么类型 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
}
这是我的代码:
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
}