【问题标题】:Kotlin performance of Interface vs Function Invocation接口与函数调用的 Kotlin 性能
【发布时间】:2016-05-06 16:52:11
【问题描述】:

在 Kotlin 中,由于我们可以将函数用作变量,因此我倾向于将接口替换为函数调用,如下所示:

class A {

    private var listener: AA? = null
    var callThis: (() -> Unit) ? = null)

    fun somethingHere() {
        callThis?.invoke()
        listener?.callThis2()
    }

    fun attachListener(listener: AA) {
        this.listener = listener
    }

    interface AA {
        fun callThis2()
    }
}

class B {
    init {
        val objectA = A()
        objectA.callThis = {}
        objectA.attachListener(object : A.AA {
            override fun callThis2() {
            }
        })

    }
}

由于我对 Kotlin 还很陌生,我想知道它们之间的区别以及在什么情况下我应该使用函数调用和接口,除了(显然)抽象。还是一样,函数调用和匿名内部类完全一样

函数被多次调用,每100次精确,我想知道,在性能方面,哪个更好

【问题讨论】:

  • 您能重新格式化代码吗?在目前的状态下,它有点难以阅读。谢谢

标签: java android interface kotlin function-calls


【解决方案1】:

Kotlin 中的 lambda 被编译为匿名内部类。因此,两种场景的表现会完全一样。

【讨论】:

    猜你喜欢
    • 2020-10-29
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多