在android java类中使用Kotlin扩展
是否有可能在android java类中使用kotlin扩展? 例:
fun String.getSomething(): String { return "something" }
那么在Java中使用它就像:
String someString = "blabla"; someString.getSomething();
这可能吗?
你可以混合kotlin和java(在java类中使用/调用kotlin类)但是你想在这里使用java中的kotlin特性 – 这是不可能的
Kotlin的扩展函数被编译为以接收器作为第一个参数的JVM方法。 如果您的扩展函数是在顶层声明的,例如在名为file.kt
的文件中:
package foo fun String.getSomething(): String { return "something" }
然后,在Java中,可以从相应的文件类调用静态方法:
import foo.FileKt; ... String someString = "blabla"; FileKt.getSomething(someString);