在Java中,您不能扩展最终类,但在Kotlin中,您可以为此类最终类编写扩展方法。他们如何使其在内部运作?我找不到任何说明Kotlin扩展方法内部工作原理的文章。
在Java中,您不能扩展最终类,但在Kotlin中,您可以为此类最终类编写扩展方法
我认为您假设扩展方法使用的继承不是。它是伪装在kotlin语法糖中的静态方法。例如,看下面的简单扩展方法:
String.removeSpace(): String {
return this.replace(" ", "")
}
您可以认为它等同于以下Java代码。
static String removeSpace(String input) {
return input.replace(" ", "")
}
kotlin在这里所做的是在其顶部提供包装器,以便通过使用this
它可以获取调用者的实例。通过将其与Kotlin将功能定义为头等公民的能力相结合,您可以编写出类似以下内容的精美文章:
fun String.removeSpace() = this.replace(" ", "")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句