gpt4 book ai didi

java - 在泛型列表的 Java 中传递 Class

转载 作者:搜寻专家 更新时间:2023-10-30 20:56:12 27 4
gpt4 key购买 nike

我有一个从服务中读取 JSON 的方法,我使用 Gson 进行序列化并使用类型参数编写了以下方法。

public T getDeserializedJSON(Class<T> aClass,String url)
{
Reader r = getJSONDataAsReader(url);
Gson gson = new Gson();
return gson.fromJson(r, aClass);
}

我正在使用 json,它只返回一个类型的数组,例如

[
{ "prop":"value" }
{ "prop":"value" }
]

我有一个映射到这个对象的 java 类,我们称它为 MyClass。但是要使用我的方法,我需要这样做:

RestClient<ArrayList<MyClass>> restClient = new RestClient<ArrayList<MyClass>>();
ArrayList<MyClass> results = restClient.getDeserializedJSON(ArrayList<MyClass>.class, url);

但是,我无法弄清楚执行此操作的语法。只传递 ArrayList.class 是行不通的。

那么有没有什么办法可以去掉Class参数或者如何获取MyClass的ArrayList的类呢?

最佳答案

您可以使用 Bozho 的解决方案,或者使用以下方法避免创建临时数组列表:

Class<List<MyClass>> clazz = (Class) List.class;

此解决方案的唯一问题是您必须使用 @SuppressWarnings("unchecked") 抑制未检查的警告。

关于java - 在泛型列表的 Java 中传递 Class<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797914/

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