私はインターフェイスを持っており、そのインターフェイスの実装はいくつかあります。今度は、正しいImplementedメソッドを動的に呼び出す必要があります。実装メソッドを動的に呼び出す
実装クラス名はプロパティファイルから取得します。今私は反射を使用してメソッドを呼び出す必要があります。
どうすればよいでしょうか?
//This is my Interface.
public interface ITestInterface{
public CustomVO customMethod(CustomObj1 obj1,CustomObjec2 obj2);
}
//This class implements the above interface
public class TestInterface implements ITestInterface{
public CustomVO customMethod(CustomObj1 obj1,CustomObjec2 obj2){
//some logic
}
}
ここで、Reflectionを使用してcustomMethod(obj1、obj2)を呼び出す必要があります。クラス名はTestInterface
です。
これは私がやったことです。 Class.forName(className).newInstance();を使用してTestInterfaceのインスタンスを作成しました。
Class[] paramTypes = new Class[ 2 ];
paramTypes [ 0 ] = CustomObj1.class;
paramTypes [ 1 ] = CustomObj2.class;
Object obj=Class.forName(className).newInstance();
Class.forName(className).getMethod("customMethod", paramTypes).invoke(obj, obj1,obj2);
これを行う正しい方法がわからないのですか?私を案内してくれませんか?
まあ、それは動作しましたか? – biziclop
はい、それはあなたがそれをやろうとしている方法です。 –