У меня есть интерфейс, и есть несколько реализаций для этого интерфейса. Теперь мне нужно динамически вызывать правильный реализованный метод.
Я получаю имя класса реализации из файла свойств. Теперь я должен вызвать метод с помощью отражения.
Не могли бы вы предложить лучший подход для этого?
//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
}
}
Теперь мне нужно вызвать customMethod (obj1, obj2) с помощью Reflection. У меня есть имя класса TestInterface
.
Это то, что я сделал.
Я создал экземпляр TestInterface, используя Class.forName (className) .newInstance ();
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);
Я не знаю, правильно ли это делать? Не могли бы вы вести меня?