用Java中的值实例化一个通用类

时间:2018-12-08 16:33:04

标签: java generics reflection

我有一个通用类,我们将其称为Foo,以字符串形式键入T和T的值。 现在,我想使用此值创建Foo<T>的实例。

我对非泛型类的处理方式:

Class<?> cls = Class.forName(fooStr);

但是如何为其提供模板参数?

String fooStr; //Foo
String typeStr; //Integer, String, e.t.c.
String valueStr; 

我想创建那个实例 new Foo<T>(value)

Foo可以是{ChildNode,ParentNode}集合中的任何名称,因此可以在运行时解析。

1 个答案:

答案 0 :(得分:0)

无法创建类型为Foo<T>的实例。您只能创建类型Foo的实例。通用参数<T>将由编译器删除。它不会在运行时出现。这就是泛型的工作方式。泛型仅用于更好的类型检查并避免类型转换。