gpt4 book ai didi

android - 从 Kotlin 中的另一个类访问静态扩展函数?

转载 作者:行者123 更新时间:2023-11-29 15:01:29 24 4
gpt4 key购买 nike

假设我们有以下扩展函数:

class Helper {
companion object {
fun Int.plus(value: String) = Integer.valueOf(value).plus(this)
}

如何从另一个类中的 Helper 类访问 plus 扩展函数。有没有办法让我们可以做这样的事情,例如:

class OtherClass {
fun someMethod() {
val eight = 7.Helper.Companion.plus("1")
}

最佳答案

在你的例子中 Int.plus(value: String)Helper.Companion 对象的成员函数(事实上它是一个伴随对象或者它在另一个类中无关紧要)。 Declaring Extensions as Members 中描述了这种情况文档部分。

简而言之,要访问具有两个 接收器的函数(类型为 Int 的扩展接收器和类型为 Helper.Companion 的调度接收器) 您必须将它们都包含在范围内。

这可以通过多种方式实现:

with(Helper.Companion) {
239.plus("")
}

with(Helper.Companion) {
with(239) {
plus("")
}
}

附言将扩展函数放入伴生对象中是非常不规则且不符合习惯的。我很难想象您为什么需要它。

关于android - 从 Kotlin 中的另一个类访问静态扩展函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44476401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com