13

是否可以在 android java 类中使用 kotlin 扩展?例子:

fun String.getSomething(): String {
    return "something"
}

然后在Java中像这样使用它:

String someString = "blabla";
someString.getSomething();

这可能吗?

4

2 回答 2

31

Kotlin 的扩展函数被编译为以接收者为第一个参数的 JVM 方法。如果您的扩展函数在顶层声明,例如在名为 的文件中file.kt

package foo

fun String.getSomething(): String {
    return "something"
}

然后,在 Java 中,您可以从相应的文件类中调用静态方法:

import foo.FileKt;

...

String someString = "blabla";
FileKt.getSomething(someString);
于 2015-06-17T01:02:52.060 回答
6

您可以混合使用 kotlin 和 java(在 java 类中使用/调用 kotlin 类)但是您在这里想要的是在 java 中使用 kotlin 功能 - 这是不可能的

于 2015-06-16T22:58:22.013 回答