如何使用反射到JAVA中的GENERIC类?

时间:2015-12-29 14:50:58

标签: java reflection

我想要一个通用类,如SomeContainer<SomeClass>。我只有className,所以,使用java反射,如Class.forNameClass.forName(param).newInstance();,但它不支持泛型,我该怎么办?

1 个答案:

答案 0 :(得分:1)

泛型只是编译时的语法糖,它允许Java更好地检查类型的使用并避免强制转换。在运行时,泛型并不存在。所以例如List<String>List<Integer>在运行时只是List的实例。

回答你的问题:

final Object o = Class.forName("java.util.List").newInstance();
final List<String> list = (List<String>) o;