如何从此表达式中获取类java.util.List
答案 0 :(得分:6)
如果您的List
定义了具体的类型参数,例如:
private class Test {
private List<String> list;
}
然后你可以通过反思得到它:
Type type = ((ParameterizedType) Test.class.getDeclaredField("list")
.getGenericType()).getActualTypeArguments()[0];
但是,如果在编译时未知类型,则由于type erasure
而丢失该类型答案 1 :(得分:6)
我假设您想在运行时知道List的模板类,简短的回答是:您不能。 Java泛型仅在编译时使用:模板参数在生成字节代码之前被擦除。这称为“type erasure”。
答案 2 :(得分:0)
您可以尝试这样的事情:
Class<List<Foo>> cls = (Class<List<Foo>>)(Object)List.class