我知道我可以通过传入一个类然后将该类声明为返回类型来动态确定方法的返回类型,如下例所示:
public static <returnType> returnClass dynamicConstructor (Class<returnType> returnClass){
//Dynamically construct an object using a zero parameter constructor
return (returnClass) object;
}
将被调用的代码是:
DynamicConstructor.construct(constructedClass);
这段代码很好,因为当你在代码中调用方法时,它很简单并且被封装了。但是,我想更进一步,将参数设为包含完整类名的字符串,然后让方法通过Class.forName(className)
. 这样做的问题是我无法弄清楚如何返回稍后确定的类型。使用方法重载,我的代码是:
public static ?????? dynamicConstructor (String className){
try {
return dynamicConstructor(Class.forName(className));
} catch (ClassNotFoundException e) {
System.out.println("Could not find class at path " + classPath);
e.printStackTrace();
return null;
}
}
问题是我不知道在标记的部分中放什么??????
。我希望能够以某种方式引用由Class.forName(className)
. 这可能吗?