kotlin - 如何将分机转为成员(member)?

标签 kotlin kotlin-extension

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/

相关文章:

android - Kotlin 中的 java.lang.ClassCastException : CustomAdapter cannot be cast to android. widget.ArrayAdapter

android - 当它专注于 editText 时,如何使状态栏位于其顶部的全屏 Activity ,而滚动条在 Activity 中未完全滚动?

android - 如何在 Kotlin Android 中正确使用 URL

java - 如何在 Kotlin 中创建对类进行操作的扩展函数?

kotlin - 如何从 Kotlin 中的函数返回 bool 值

android - 如何将protobuf添加到flutter/kotlin android项目中

java - android oreo 上的永久服务

kotlin - Kotlin用前面两个索引的元素压缩每个元素

kotlin - Kotlin 中的 Swift 枚举等效项

java - Android kotlin 扩展错误