Java泛型&x2B;字符串格式的类名

Java泛型&x2B;字符串格式的类名,java,generics,apache-commons-dbutils,Java,Generics,Apache Commons Dbutils,以下是运行良好: ResultSetHandler<List<MyClass>> h = new BeanListHandler<MyClass>(MyClass.class); 它抛出: classObj cannot be resolved to a type 谢谢阅读。硬编码类型不错。它们是泛型的本质。泛型的目的是在编译时提供更好的类型检查。如果您想对不同类型的列表使用ResultSetHandler,请考虑使用这些类型的公共基类或接口。您不能这样做

以下是运行良好:

ResultSetHandler<List<MyClass>> h = new BeanListHandler<MyClass>(MyClass.class);
它抛出:

classObj cannot be resolved to a type

谢谢阅读。

硬编码类型不错。它们是泛型的本质。泛型的目的是在编译时提供更好的类型检查。如果您想对不同类型的列表使用
ResultSetHandler
,请考虑使用这些类型的公共基类或接口。

您不能这样做。泛型在运行时没有业务。您必须在编译时知道类名。正如Rohit Jain指出的,这是不可能的。编译器需要在编译时知道确切的类。备选方案:
ResultSetHandler
虽然不是类型安全的,但应能满足您的需要。@RohitJain所指的是类型擦除。看看这个链接:我不确定类型擦除是否是一个问题。
query.getResultMapperClass()
准确返回的是什么,错误消息是什么?无论如何,调用应该是
newbeanListHandler(classObj)
(不带
.class
),也可以保证类实现给定的接口
IFoo
。然后有
classObj cannot be resolved to a type