KotlinからJavaのvarargsメソッドを呼び出す 質問する

KotlinからJavaのvarargsメソッドを呼び出す 質問する

Java 関数があります:

public static void initialize(@NonNull Activity activity, Settings... settings) {}

kotlin から呼び出したい:

fun initialize(activity: Activity, vararg settings: settings) = JavaClass.initialize(activity, settings)

しかし、コンパイルできず、型の不一致があり、Settings必須であるが引数がkotlin.Array<out Settings>

署名と一致させようとしているのがわかります

public static void initialize(@NonNull Activity activity, Settings settings) {}

でも使いたい

public static void initialize(@NonNull Activity activity, Settings[] settings) {}

ベストアンサー1

次の構文を使用する必要があります。

fun initialize(activity: Activity, vararg settings: settings) =
    JavaClass.initialize(activity, *settings)

https://kotlinlang.org/docs/reference/java-interop.html#java-varargs

おすすめ記事