当前位置: 首页 > 面试题库 >

通过课程 在通用列表的Java?

楚健
2023-03-14
问题内容

我有一种从服务读取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")



 类似资料:
  • 问题内容: 当然会抛出NPE。 如果实例为空,我应该使用什么语法来获取T类?可能吗? 问题答案: 由于类型擦除,这是不可能的。 有以下解决方法:

  • 问题内容: 我正在尝试使用python中的列表理解来扁平化列表。我的清单有点像 只是为了打印,然后在此列表中的单个项目我写了这段代码 然后我使用相同的逻辑通过列表理解来整理列表,但出现以下错误 如何使用列表理解来展平这种类型的列表? 问题答案: 单线: 可读版本: 使用嵌套列表理解:(与相比要慢一些):

  • 问题内容: 我想做类似的事情: Python的标准库中是否有类似行为? 我知道在这里自己动手很容易,但是我正在寻找一种更标准的方法。 问题答案: 您可以使用filter方法: 或列表理解: 要查找单个元素,可以尝试: 尽管如果没有匹配项将引发异常,因此您可能希望将其包装在try / catch中。方括号()使之成为生成器表达式,而不是列表理解。 就我个人而言,尽管我只是使用常规的过滤器/理解并采用

  • 我的模型包含一个名为result的接口。我有多个实现所述接口的类。现在我要添加结果列表作为结果。我希望能创造出这样的东西: null

  • 这是我想做的 我知道Hibernate HQL可以做到这一点 但是,如果我想使用Panache ORM,我该怎么办?

  • 问题内容: 如何按两列对MySQL表进行排序? 我想要的是文章,首先是最高评分,然后是最新日期。例如,这将是一个示例输出(左#是评分,然后是文章标题,然后是文章日期) 我正在使用的相关SQL是: 我可以按一个或另一个排序,但不能两个都排序。 问题答案: 默认排序是递增的,您需要在两个订单中都添加关键字DESC: