【问题标题】:Implement an interface on a var without extending a class on Kotlin [duplicate]在 var 上实现接口而不在 Kotlin 上扩展类 [重复]
【发布时间】:2018-04-19 04:17:53
【问题描述】:

所以在 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,而不必定义一个扩展该接口的新类。

有可能吗?语义是什么?

【问题讨论】:

    标签: interface kotlin


    【解决方案1】:

    你为你的代码创建一个object实现接口,

    var sensorEventListener = object : SensorEventListener {
        override fun onSensorChanged(event : SensorEvent) {
    
        }
    
        override fun onAccuracyChanged(sensor : Sensor, accuracy : Int) {
    
        }
    
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2017-12-30
    • 2012-12-19
    相关资源
    最近更新 更多