gpt4 book ai didi

具有类型的 Java 泛型列表类

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:15 27 4
gpt4 key购买 nike

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

Person p = myParser.parse("name=Mike", Person.class);

这很好用,也适用于列表:

List<Person> lop = myParser.parse(somestring, List.class);

但是,这给了我一个编译器警告,因为我真正想要的是 List<Person>.class , 但我无法弄清楚语法。

我该怎么做?

最佳答案

您不能使用 List<Person>.class因为 type erasure 。在运行时,没有 List<Person>.class目的。只有一个 List.class . (或者每个类加载器最多一个。)

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

List<Person> lop = myParser.parseList( somestring, Person.class );

或者,如果你想做一张 map :

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

关于具有类型的 Java 泛型列表类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com