kotlin回调和java回调
kotlin回调和java回调的对比
废话不多说,人狠话不多,直接撸代码:
kotlin的回调
class A{
fun setListeren(canshu1:Int,mListen: (String?) -> Unit) {
//费时的操作-------后调用mListen
mListen("回调的内容")//运行到Log.d的传入监听
}
}
class B{
a:A=A()
//为了更直观看到参数和回调的参数,所以多加了参数233,不要的可以省略
a.setListeren(233){
Log.d(TAG, "回调内容为:$it")
}
}
java的回调
/**
* 按钮式回调
*/
public class B {
public void bb() {
new A().setmOnclickListen(new A.ClickCallback() {
@Override
public void clickCallback() {
Log.d("111", "=返回到这运行=");
}
});
}
}
public class A {
private ClickCallback mCallback;
public void aa() {
new Handler().postDelayed(new Runnable() {
public void run() {
//耗时操作
mCallback.clickCallback();//返回到B那里去运行代码
}
}, 2000);
}
//自定义回调接口
public interface ClickCallback {
void clickCallback();
}
public void setmOnclickListen(ClickCallback callback) {//构造函数中传callback进来
this.mCallback = callback;
}
}