java - Invoke methods with different arguments in a generic way -
im trying write generic code, can invoke methods @ runtime different number & type of arguments. have class & different methods @ disposal reading file, along arguments passed particular method.
so, here's object array contains values of different type -
object[] args = new object[]{"astring", 1, true};
/* based on object java.lang.reflect.method.invoke(object obj, object... args) , have written following method */
//"executingmethod" references method executed, 1 can class.forname("classname").getdeclaredmethods(); , traversing particular method.
executingmethod.invoke(methodclassobject, args); //and doesn't execute because @ runtime doesn't know(can't downcast) param "type".
i don't want pass args[0], args[1], args[2] inside executingmethod.invoke(..), case number of arguments may vary.
any suggestions pls??
here 1 way deal problem:
create following interface
import java.util.arraylist; public interface executableinterface { void executable(string methodname); string getexecutablemethod(); void setparameters(arraylist parameters); arraylist getparameters(); }
now, in class want invokable, make implement methods , pass invokable method using executable , pass parameters using setparameter.
at runtime values , call executable method returns getexecutablemethod. same way parameters.
Comments
Post a Comment