Если я делаю это в Java для динамического вызова имени метода из класса, это работает.
MainApp app = new MainApp();
Method meth = app.getClass().getMethod("myMethod", MyParameterType.class);
//call method
meth.invoke(app, new MyParameterType("hello"));
Но это сработало, потому что я знаю конструктор в методе invoke. Но если бы я передал объект Method в качестве параметра некоторым другим классам, и я не знаю, кто является конструктором, я больше не могу вызывать метод. Даже если я знаю, я не хочу создавать другой объект, чтобы просто вызвать метод. Например:
//This is in the class call MainApp.java.
//There is a method in MainApp.java that looks this way: myMethod(MyParameterType param);
MainApp app = new MainApp();
OtherClass myClass = new OtherClass();
Method meth = app.getClass().getMethod("myMethod", MyParameterType.class);
myClass.callMe(meth);
//Inside OtherClass.java
public void callMe(Method meth) {
//call method
meth.invoke(########, new MyParameterType("hello"));
}
В этом случае, что я должен поставить для параметра ########? В контексте OtherClass.java объект базового конструктора не будет известен. И зачем мне это нужно, так как meth уже тип Метода, который я просто вызываю как функцию?
Спасибо