我正在根据命令行参数加载db-driver,如下所示:
Class driverClass = null;
try {
driverClass = Class.forName(dbDriver);
catch(ClassNotFoundException e) {
// Print error message here
}
稍后我致电driverClass.newInstance()
。
如何避免消息
Class是原始类型。对泛型类型
Class<T>
的引用应该参数化
如果我尝试Class<Driver>
,Class.forName部分会抱怨类型不匹配:
类型不匹配:无法从
Class<capture#1-of ?>
转换为Class<Driver>
这很奇怪,如何正确地在第一行中对Class进行参数化?
答案 0 :(得分:3)
如果您现在知道确切的类名,则可以将?
指定为类型,这意味着任何扩展Object
的类:
Class<?> driverClass = Class.forName(dbDriver);