扩展方法在Kotlin中如何工作?

普拉比什

在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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

扩展方法如何工作?

来自分类Dev

如何组织Kotlin扩展方法

来自分类Dev

Thread() 在 Kotlin 中是如何工作的?

来自分类Dev

协议扩展在Swift中如何工作?

来自分类Dev

在Kotlin中bufferedReader()到底如何工作?

来自分类Dev

嵌套协方差在Kotlin中如何工作?

来自分类Dev

如何从Kotlin的InnerClass扩展

来自分类Dev

Django的扩展如何工作?

来自分类Dev

Kotlin中的扩展字段

来自分类Dev

在 Kotlin 中组织扩展

来自分类Dev

从Kotlin中的通用扩展函数/方法派生函数参考

来自分类Dev

编译错误,从Kotlin中的另一个扩展方法调用扩展方法

来自分类Dev

如何在buildSrc kotlin文件中配置Jib扩展?

来自分类Dev

如何在Kotlin中创建视图扩展功能

来自分类Dev

在gradle kotlin dsl中,如何调用动态测试扩展程序?

来自分类Dev

如何在Kotlin暴露的OP Postgis扩展中编写内容?

来自分类Dev

如何在Kotlin中创建对类进行操作的扩展功能?

来自分类Dev

如何在 kotlin 中扩展 Java 静态字段

来自分类Dev

如何在界面中模拟 Kotlin 扩展功能?

来自分类Dev

如何在 Kotlin 中测试/访问伴随对象扩展函数?

来自分类Dev

新的mongodb PECL扩展中的排序如何工作?

来自分类Dev

扩展程序如何在Swift 3中工作?

来自分类Dev

如何在 Git 中扩展分支上的工作

来自分类Dev

如何让 HTMLElement.click() 在 Chrome 扩展中工作

来自分类Dev

如何使用NSButton中的方法扩展NSButtonCell?

来自分类Dev

kotlin 扩展功能不明白这个东西是如何工作的

来自分类Dev

如果 gradle 中包含生命周期扩展,kotlin-android-extensions 将停止工作

来自分类Dev

如何在Kotlin的同名扩展函数中调用buildin扩展函数?

来自分类Dev

多登录扩展如何工作?

Related 相关文章

热门标签

归档