Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型为的Java泛型列表类_Java_Generics - Fatal编程技术网

类型为的Java泛型列表类

类型为的Java泛型列表类,java,generics,Java,Generics,我有一个解析字符串的方法调用,解析方法的第二个参数是它将返回的类型。要分析一个人,我们使用: Person p=myParser.parse(“name=Mike”,Person.class) 这非常有效,对于列表也很有效: List lop=myParser.parse(somestring,List.class) 但是,这给了我一个编译器警告,因为我真正想要的是List.class,但我无法理解语法 如何做到这一点?您可以通过多种方法解决此问题,但最好是添加一个方法 List<Pers

我有一个解析字符串的方法调用,解析方法的第二个参数是它将返回的类型。要分析一个人,我们使用:

Person p=myParser.parse(“name=Mike”,Person.class)

这非常有效,对于列表也很有效:

List lop=myParser.parse(somestring,List.class)

但是,这给了我一个编译器警告,因为我真正想要的是
List.class
,但我无法理解语法


如何做到这一点?

您可以通过多种方法解决此问题,但最好是添加一个方法

List<Person> lop = myParser.parseList(somestring, Person.class);
List lop=myParser.parseList(somestring,Person.class);
您的方法将能够“知道”列表中元素的类型

另一种方法是忽略警告,但这可能只是隐藏问题。

由于的原因,您不能使用
List.class
。在运行时,没有
List.class
对象。只有一个
列表。class
。(或每个类装入器最多一个。)

您可以做的是提供一个同级方法,允许调用方指定容器类型及其类型参数。例如:

List<Person> lop = myParser.parseList( somestring, Person.class );
List lop=myParser.parseList(somestring,Person.class);
或者,如果您想制作地图:

Map<Person,Integer> map = myParser.parseMap( somestring, Person.class, Integer.class );
Map Map=myParser.parseMap(somestring,Person.class,Integer.class);

谢谢,我想尝试用一种方法来做,但不想忽略警告。我认为,必须有一种方法来指定泛型类的类型。