从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>
我看到它试图与signture匹配
public static void initialize(@NonNull Activity activity, Settings settings) {}
但我想用
public static void initialize(@NonNull Activity activity, Settings[] settings) {}
您应该使用以下语法:
fun initialize(activity: Activity, vararg settings: settings) = JavaClass.initialize(activity, *settings)
https://kotlinlang.org/docs/reference/java-interop.html#java-varargs