首页 > 解决方案 > 处理嵌套类的整个类型名称

问题描述

我使用一些嵌套类,如 List、MyObject ...

然后我可以使用以下方法找到它们的类型:

Type type = new com.google.gson.reflect.TypeToken<List<String>>() {}.getType();

但是当我尝试使用泛型类型来处理它时,例如:

public static <T> T findClass(Class<T> resultClass)
    {
        //E.g. resultClass = String.class; Expect: List<String>
        Type type = new com.google.gson.reflect.TypeToken<List<T>>() {}.getType();
    }

它对我不起作用。

在这里,我想知道两件事。

  1. 我可以解决这个问题吗?
  2. 我可以像Class<List<String>>在 java 中那样描述路径吗?

标签: javareflectiongson

解决方案


根据@ Holger的评论,我刚刚解决了它,如下所示:

public static <T> Set<T> fromJsonToSet(Class<T> resultClass)
{
    Type type = TypeToken.getParameterized(Set.class, resultClass).getType();
    ...
}

推荐阅读