在自定义类中,我试图执行通过参数从外部给出的函数。
对我来说重要的是不必存储对父类等的任何引用,只存储要调用的方法/函数。
我尝试发送一个方法作为参数,但它不起作用。
class A
// var to store reference to external method
private Method myMethodReference; // (says error: never used)
// the setter to store the reference to the external method
public void setMethodReference(Method someMethod)
{
myMethodReference = someMethod;
}
public boolean someFunctionWithinMyClass()
{
// call the external method via my reference
myMethodReference(); // (says error: The method myMethodReference() is undefined)
}
此外,当我尝试从外部类设置对方法的引用时,它不起作用:
class B
public void someFunction() { Log.i("la", "la" };
instanceOfClassA.setMethodReference(someFunction); // (says error: variable someFunction not found)
因此,即使传递引用也不起作用,因为 Eclipse 假定 someFunction 是一个不在范围内的变量。
我希望这能更好地解释它!