gpt4 book ai didi

android - 使用方法扩展和继承时名称冲突

转载 作者:搜寻专家 更新时间:2023-11-01 07:42:03 25 4
gpt4 key购买 nike

我有一个扩展

fun Fragment.showToast(message: String, toastLength: Int = Toast.LENGTH_SHORT) {
Toast.makeText(context, message, toastLength).show()
}

在项目中我们使用 MVP:

interface MyContract {
interface View {
fun showToast(message: String)
}
}

class MyFragment : Fragment(), MyContract.View {
override fun showToast(message: String) {
showToast(message)
}
}

所以在 MyFragment.showToast(message) 中我希望调用扩展函数而不是 StackOverflowException

是否可以直接调用扩展函数?像这样的东西:

Fragment.showToast(this, message)

或者我只需要提供另一个名字?

最佳答案

您可以将 MyFragment 类转换为 Fragment 并执行:

class MyFragment : Fragment(), MyContract.View {
override fun showToast(message: String) {
val fragment = this as Fragment
fragment.showToast(message)
}
}

这样你就会引用到Fragment类的扩展函数

关于android - 使用方法扩展和继承时名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54746863/

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