转载自 Java中的函数传递
在C和C++中,函数的传递可以通过函数指针来实现。在C#中,函数传递可以通过委托、Action、Func来实现。Java中没有函数指针、没有委托,那函数要如何传递呢?
可以通过以下两种方式实现。
1、通过handler,在A类中实例化B类,并传递一个handler到B中。B通过handler发送消息,A中接收到消息后,执行相应的函数。严格的来说,这种不算是函数传递,只是变相达到了函数调用的目的。
2、通过接口来实现。下面是实现的代码。
ICallback.java
package com.sparkle.sgmjl;public interface ICallback {abstract void callback(String data);
}
在A类中传递ICallback给B类,代码如下。
ClassA.java
ClassA classA=new ClassA( new ICallback() {@Overridepublic void callback(String data) {Test(data);}}); private void Test(String data)
{Log.e("TEST",data))
}
ClassB.java
public ClassB(ICallback icallback){icallback("Call OK"); }