在android java类中使用Kotlin扩展

时间:2015-06-16 21:26:02

标签: android kotlin kotlin-extension

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

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

然后在Java中使用它:

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

这可能吗?

2 个答案:

答案 0 :(得分:21)

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

package foo

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

然后,在Java中,您可以从相应的file class

调用静态方法
import foo.FileKt;

...

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

答案 1 :(得分:6)

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