如何使用多个参数创建泛型类的对象

时间:2015-08-22 19:49:29

标签: java

现在我创建了一个类,如下所示:

class Test <T extends Number & List<String>>    
{
T i;
T k;
public void show(){
    System.out.println(i);
}
}

我想创建一个Test类的对象,但是我遇到了所有可能组合的错误。下面是我尝试创建Test类对象并且失败可怕的主要类。请帮忙。

public class CollectionsDemo {

public static void main(String[] args) {
        Test<ArrayList<Integer>> t = new Test<ArrayList<Integer>>();

}       
}

每次编译器抛出以下错误:

Bound mismatch: The type ArrayList<Integer> is not a valid substitute for the bounded parameter <T extends Number & List<String>> of the type Test<T>

1 个答案:

答案 0 :(得分:1)

这堂课:

class Test <T extends Number & List<String>>

只有一个类型参数:TNumberList<String>是类型范围。用简单的英语读取:class Test适用于任何类型T,它们都扩展Number并实现List<String>ArrayList<Integer>既不是List Strings也不是Number

要实例化Test,您需要一个类:

class ListNumber extends Number implements List<String>

这是一个奇怪的课程。它看起来并不像你想要的那样。也许你只想要&#34;列出包含数字&#34;:Test <List<T extends Number>>?或者,&#34;列出和数字&#34;:Test <T extends List<String>, V extends Number>