我想要一个通用类,如SomeContainer<SomeClass>
。我只有className,所以,使用java反射,如Class.forNameClass.forName(param).newInstance();
,但它不支持泛型,我该怎么办?
答案 0 :(得分:1)
泛型只是编译时的语法糖,它允许Java更好地检查类型的使用并避免强制转换。在运行时,泛型并不存在。所以例如List<String>
或List<Integer>
在运行时只是List
的实例。
回答你的问题:
final Object o = Class.forName("java.util.List").newInstance();
final List<String> list = (List<String>) o;