如何在kotlin中通过同名实例函数调用扩展函数
比如说如何在kotlin中通过同名实例函数调用扩展函数,kotlin,Kotlin,比如说 open class TestClass fun TestClass.testFunc(): String = "ext" 现在我在另一个文件中写道: import xx.xx.testFunc as rename class OverTestClass : TestClass() { fun testFunc(): String { return "OverTestClass - " + rename()
open class TestClass
fun TestClass.testFunc(): String = "ext"
现在我在另一个文件中写道:
import xx.xx.testFunc as rename
class OverTestClass : TestClass() {
fun testFunc(): String {
return "OverTestClass - " + rename()
}
}
您可以看到我将TestClass.testFunc()
重命名为rename()
,这样我就可以在OverTestClass
中调用TestClass.testFunc()
。但这并不酷,我想要的方式是这样的:
return "OverTestClass - " + super.testFunc()
可能吗
我知道这个问题是颠倒的,我想这样做的原因是:我正在编写一个在java和kotlin中都使用的库,我不想像这样编写java:
XxxKt.func(obj)
我想:
obj.func(func)
所以我把
func
作为一个实例函数。并通过其“超级”扩展功能直接实现我将尝试转换到TestClass:
class-OverTestClass:TestClass(){
fun testFunc():字符串{
返回“OverTestClass-”+(这是TestClass.testFunc()
}
}
我会尝试对TestClass进行强制转换:
class-OverTestClass:TestClass(){
fun testFunc():字符串{
返回“OverTestClass-”+(这是TestClass.testFunc()
}
}
这是否回答了您的问题?这回答了你的问题吗?