【发布时间】:2014-02-19 22:27:58
【问题描述】:
我的场景:
我得到一个 jsonArray,我想将此 jsonArray 转换为所需类型的 List;即List<Integer>、List<String>等
假设我有以下方法:
public static List jsonArrayToJavaList(JsonArray jsonArray, TYPE TYPE) {
return new Gson().fromJson(jsonArray, new TypeToken<List<TYPE>>() {}.getType());
}
我如何传递TYPE?
我想这样做是因为其他人可以使用此方法,并且我不想为我想要的每种类型的列表复制此代码...
我也试过了:
public static List jsonArrayToJavaList(JsonArray jsonArray, final Class c) {
return new Gson().fromJson(jsonArray, new TypeToken<List<c>>() {}.getType());
}
我看到错误提示未知类 c。
【问题讨论】:
-
我猜你可以通过某种方式利用
Class<T>。 -
@DennisMeng 你能提供一个sn-p吗?我想我试过了,但没有用。
-
我还没有任何具体的东西(因此它仍然只是一个猜测)。如果我在其他人发帖之前得到具体的东西,我会发布答案。话虽如此,您可以用您所做的以及为什么它不起作用来更新问题。谁知道?这可能是一件小事。
-
@DennisMeng 我用 Class
添加了我的代码 -
Creating lists of dynamic types 的可能重复项 - 答案是:由于类型擦除,您不能这样做。