创建通过反射获得的对象集合

时间:2015-01-24 14:19:01

标签: java reflection collections casting

假设我有一些Object oo instanceof XXX == true。我现在想要创建(在运行时)类型为XXX ArrayList<XXX>()的ArrayList。有没有办法做到这一点?我目前只创建ArrayList<Object>,但这还不够。

2 个答案:

答案 0 :(得分:2)

  

当运行时检查可参数化类型本身(如java.util.List)时,无法知道参数化的类型。这是有道理的,因为类型可以参数化为同一应用程序中的所有类型。但是,当您检查声明使用参数化类型的方法或字段时,您可以在运行时看到参数化参数化类型的类型。

http://tutorials.jenkov.com/java-reflection/generics.html


不幸的是,您无法在运行时获取参数化类型。仿制药被设想为提供编译类型的安全性。 希望上面的链接有帮助=)

答案 1 :(得分:1)

我担心你不能这样做。泛型只是为了给你编译时类型安全。