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

时间:2018-03-01 23:54:52

标签: java generics type-parameter

这是我的代码:

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,因此它应该具有相同的类型参数吗?

1 个答案:

答案 0 :(得分:-1)

我不知道LL。例如,MyArrayListImpl<T>可以是private <T> List<T> Foo(List<T> list1) { List<T> list2 = new ArrayList<T>(); //more code }

我认为这就是你想要的:

class Insect:
    BEE = 0x00
    WASP = 0x01
    BUMBLEBEE = 0x02


class Breakfast:
    HAM = 0x00
    EGGS = 0x01
    PANCAKES = 0x02


b = Insect.WASP
if b == Breakfast.EGGS:
    print("ok")