次の例のように、クラスを渡し、そのクラスを戻り値の型として宣言することで、メソッドの戻り値の型を動的に決定できることを知っています。
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)
。これは可能ですか?