Kotlin如何选择特定实例重载方法的绑定可调用引用
要选择指定的重载绑定实例方法引用,只需要显式声明可调用引用对应的函数类型即可,Kotlin编译器会自动匹配与声明的函数类型签名一致的重载方法。
示例1:选择单参数重载
对应签名为 getItem (String) -> Item 的重载,声明代码如下:
val f: (String) -> Item = a::getItem
示例2:选择双参数重载
对应签名为 getItem (String, Metrics) -> Item 的重载,声明代码如下:
val f: (String, Metrics) -> Item = a::getItem
上下文自动匹配场景
如果将绑定实例的方法引用作为参数传入高阶函数,只要高阶函数的入参函数类型明确,编译器可自动完成重载匹配,无需额外显式声明类型:
// 高阶函数的入参明确要求单参数函数类型 fun loadResource(loader: (String) -> Item) { val res = loader("res_id") } // 直接传入方法引用即可,编译器自动匹配单参数重载 loadResource(a::getItem)
内容的提问来源于stack exchange,提问作者Rocky Li
相关产品推荐
相关产品推荐

