在Kotlin上,功能参数在定义方法时需要使用thire类型注释.
就我而言,我有两个来自界面的类.
interface Base{
    fun method()
}
class DervA():Base{
    fun override method(){
        ...
    }
}
class DervB():Base{
    fun override method(){
        ...
    }
}
并且,我希望从其他函数调用他们的方法
fun test_method(inst){
    inst.method()
}
但是,Kotlin编译器抱怨"值参数需要类型注释".
我应该为每个类定义"test_method"吗?
fun test_method_for_DervA(inst:DervA){
    inst.method()
}
fun test_method_for_DervB(inst:DervB){
    inst.method()
}
你有更聪明的方法吗?
你可以这样做
fun testMethod(inst: Base) {
    inst.method()
}
由于这两个DervA和DervB是BaseS,它们也可以被传递到testMethod他们重写method将被调用.这是OOP的基本原则之一.
请注意,如果method并且testMethod具有相同的返回类型,则可以将其缩短为
fun testMethod(inst: Base) = inst.method()
| 归档时间: | 
 | 
| 查看次数: | 4309 次 | 
| 最近记录: |