转载自 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() {
@Override
public void callback(String data) {
Test(data);
}
});
private void Test(String data)
{
Log.e("TEST",data))
}
ClassB.java
public ClassB(ICallback icallback)
{
icallback("Call OK");
}