我的MainClass
中有一个返回整数值的方法。
我将此方法发送到另一个类,该类尝试调用此方法。像这样:
newVal = (Integer) calcM.invoke(receiver, start+i);
但我不知道该放什么receiver
? this
不起作用。
答案 0 :(得分:4)
在你的情况下,receiver
是Receiver对象,它将调用它的方法。
当你说myObject.myMethod
,myMethod
上的myObject
时,请注意这一点。它与invoke相同,它需要知道调用方法的对象。因此,在此示例中,您将myObject
传递给invoke。
答案 1 :(得分:3)
您的问题建议如何,您的receiver
就像:
Method receiver = MainClass.class.getMethod("methodOfMainClass", int.class);
听起来像你的方法calcM.invoke
的签名就像,
public Integer invoke(Method method, int number)
所以可以打电话,
newVal = (Integer)calcM.invoke(receiver, start+i);
答案 2 :(得分:2)
如果您的方法是静态的,则正确的接收方为null
。否则,它是您要调用方法的对象。