Kotlin 允许您扩展通用类型类的具体实例。例如,假设我有以下类(class) Foo
,具有扩展功能Foo<Int>.bar()
和Foo<String>.bar()
:
class Foo<T>(t: T) {
val a: String = "bar"
val b: Int = 111
}
fun Foo<Int>.bar() = a
fun Foo<String>.bar() = b
fun main(args: Array<String>) {
val stringBar: String = Foo(1).bar()
val intBar: Int = Foo("").bar()
}
是否可以在没有扩展函数的情况下实现此行为,如果可以,如何将扩展函数转换为成员?是否可以在不重命名或更改类型签名的情况下进行?
最佳答案
不,这是不可能的(当前接受的答案的行为与您的代码完全不同)。
关于kotlin - 如何将分机转为成员(member)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54155416/