具有泛型类型变量的类列表

时间:2018-02-08 11:06:55

标签: java generics

我正在阅读泛型类型。我能够理解泛型类型可用于指定对象或集合可以使用的内容类型,以避免运行时错误并仅在编译时解决它。

我想知道如何创建一个类型变量(T = List)为List的泛型类。例如,在下面的例子中它的字符串。

import java.util.ArrayList;
import java.util.List;

public class Test<T> {

    T string;

    public Test(T in) {

        this.string = in;

    }

    public static void main(String args[]) {

        Test<String> o = new Test<String>("Generic");


    }
}

4 个答案:

答案 0 :(得分:2)

  

我想知道如何创建一个类型变量的泛型类(T   = List)是List。

List指定为参数化类型。

要进行List<String>的通用测试,例如:

List<String> myList = new ArrayList<>();
...
Test<List<String>> o = new Test<>(myList);

答案 1 :(得分:1)

如果您希望列表严格地是字符串列表。然后,只需将您的列表声明为List<String>

即可

答案 2 :(得分:1)

以这种方式迫使开发人员使用属于Collection es的类(List,ArrayList,Vector,...)

public class Test<T extends Collection>{ ... }

<强>更新

public class Test<E,T extends Collection<E>>{ ... }

答案 3 :(得分:1)

将你的T定义为List的扩展 改变这个:

public class Test<T> {

到这个

public class Test<T extends List> {

在这种情况下,您将无法写下:

Test<String> o = new Test<String>();