在Java中,您不能扩展最终类,但在Kotlin中,您可以为此类最终类编写扩展方法。他们如何使其在内部运作?我找不到任何说明Kotlin扩展方法内部工作原理的文章。
最佳答案
In Java you cannot extend a final class, but in Kotlin you can write extension method to such final classes
我认为您假设扩展方法使用的继承不是。它是伪装在kotlin语法糖中的静态方法。例如,看下面的简单扩展方法:
String.removeSpace(): String {
return this.replace(" ", "")
}
您可以认为它等同于以下Java代码。static String removeSpace(String input) {
return input.replace(" ", "")
}
kotlin在这里所做的是在其顶部提供包装器,以便通过使用this
可以获得调用者的实例。通过将其与Kotlin将功能定义为头等公民的能力相结合,您可以编写出类似以下内容的精美文章:fun String.removeSpace() = this.replace(" ", "")
关于kotlin - 扩展方法在Kotlin中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63285907/