0

在自定义类中,我试图执行通过参数从外部给出的函数。

对我来说重要的是不必存储对父类等的任何引用,只存储要调用的方法/函数。

我尝试发送一个方法作为参数,但它不起作用。

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 是一个不在范围内的变量。

我希望这能更好地解释它!

4

1 回答 1

0
private Method  onClick;

上面这行将产生一个错误....

您应该以这种方式创建或声明一个方法...

public onClick(){


}

或者

public abstract onClick();

现在....你onClick() 没有实现 onClick()就打电话了,这导致了错误。

于 2012-09-14T17:00:23.500 回答