在var上实现接口而不在Kotlin上扩展类

时间:2018-04-19 04:17:53

标签: interface kotlin

所以在Java上我喜欢直接在像这样的局部变量上实现一个接口。

private SensorEventListener sensorEventListener = new SensorEventListener() {
    @Override
    public void onSensorChanged(SensorEvent event) {
        //implement here
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        //implement here
    }
};

以后我可以直接添加该侦听器,然后能够删除侦听器。

我试图在Kotlin上实现相同的想法,拥有一个实现接口的var,而不必定义一个扩展它的新类。

有可能吗?什么是语义?

1 个答案:

答案 0 :(得分:3)

您创建object实现接口,代码

var sensorEventListener = object : SensorEventListener {
    override fun onSensorChanged(event : SensorEvent) {

    }

    override fun onAccuracyChanged(sensor : Sensor, accuracy : Int) {

    }

}