只有在运行时我在通过了完整的类名(即“com.firm.me.MyClass”)需要传递一个泛型类的类型参数的基础上,合格的类名称的字符串
我需要实例化一个通用类,定义为:
Class A <T>
{
}
其中“T”是与传入的全限定类名称关联的类型。
我有以下几点:
Class <?> clazz = Class.forName ("com.firm.me.MyClass");
我想(从逻辑上说)有类似的东西..
A <clazz> myInstance = new A <clazz>;
上面的使用位置“clazz中”的会引起以下错误:
“clazz无法解析为类型”。
我该如何做我想做的事(逻辑上)。
非常感谢。
由于类型擦除'A myInstance'无论如何都会解析为'A myInstance',所以即使你得到了这个工作,你也不会从中受益。你究竟想要做什么? –
Thomas
2014-09-05 09:22:18
我有一个序列化的持久数据存储。可能有几家商店,并且每个商店内的所有对象都是相同类型的。我在“A类”上面给出的类例子实例化了我的持久/提取类。我想要做的是让用户输入保存在其数据存储中的数据类型的类名,以便我可以使用通用的基于命令行的应用程序,然后可以使用该应用程序来检索其数据。我想基于它们从命令行 –
user1151685
2014-09-05 09:49:29
@ user1151685输入的完全限定类名实例化persist/retriever实例,您应该在类A中声明一个成员变量,并通过构造函数初始化它。让我知道下面的解决方案解决您的问题 – 2014-09-05 10:02:30