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 に答える