kotlin

71.高阶函数代替接口回调

2019-10-08  本文已影响0人  写代码的向日葵

1.java代码如下:

public class ButtonClick implements CallBack {
    public static void main(String[] args) {
        ButtonClick mother = new ButtonClick();
        mother.init();
    }

    @Override
    public void call() {
        System.out.println("按钮被点击了");
    }

    private void init() {
        Button button = new Button();
        button.setmCallBack(this);
        button.click();
    }
}

interface CallBack {
    void call();
}

class Button {
    private CallBack mCallBack;

    void click() {
        if (mCallBack != null) {
            mCallBack.call();
        }
    }

    public void setmCallBack(CallBack callBack) {
        mCallBack = callBack;
    }
}

2.kotlin高阶函数代替函数回调

fun main(args: Array<String>) {
    val button = Button()
    button.action = {
        println(it)
    }
    button.click()
}

internal class Button {
    var action: ((String) -> Unit)? = null

    fun click() {
        action?.invoke("按钮被点击了")
    }
}
上一篇 下一篇

猜你喜欢

热点阅读