【发布时间】:2021-02-04 00:18:02
【问题描述】:
问题标题可能具有误导性,但我不知道如何更好地总结我想要完成的内容。所以请通读这个正文,以了解我想要实现的目标。
我有一个带有类型参数的方法,它可以获取一些类(例如 MyClass)。我需要创建一个 Type 的 List 并返回它。
我认为这段代码可以解决我的问题。但实际行为让我感到惊讶。
public <T> Type getListClass(Class<T> cls) {
Type type = new TypeToken<ArrayList<T>>() {}.getType();
return type;
}
实际代码:
调试器:
我们检查 type2,我们可以看到它的 rawType 为 Arraylist 和 typeArgument 为 Integer 。同样,我想用我的泛型类型发生。
但是在变量 type 中,我们观察到 Arraylist 的 rawType 和 T 的 typeArgument。相反,我希望它是一个具体的类(如 Integer 或 MyCLass)。基本上我需要一个通用的List Type,但在执行时具体。有办法实现吗?
-----编辑 1-----
这不是这个问题的重复:Get generic type of class at runtime 那里的答案与我的代码产生的结果相同。
【问题讨论】:
-
这能回答你的问题吗? Get generic type of class at runtime
-
@Milgo 我没有。那里的答案与我的方法产生相同的结果。
标签: java class generics reflection types