如何将 Kotlin 数组转换为传递给 Java 方法的 varargs(可变长度参数)
大家好!我是 Kotlin 新手,在从 Kotlin 代码调用 Java 方法时遇到了一个意外问题。
我有一个 Java 类,其中包含一个接受 varargs(可变长度参数)的方法:
```java
public class Logger {
public static void log(String tag, String... messages) {
for (String msg : messages) {
System.out.println(tag + ": " + msg);
}
}
}
```
在 Kotlin 中,我想将预先准备好的字符串数组传递给这个方法。但当我编写:
```kotlin
val messages = arrayOf("错误 1", "错误 2", "错误 3")
Logger.log("标签", messages) // 编译错误!
```
我收到编译错误:*类型不匹配:推断类型是 Array,但期望的是 String*。我知道问题在于 Kotlin 不能像 Java 那样自动将数组展开为 varargs。
我尝试过使用 `*`(spread 运算符),但不确定是否正确。请告诉我如何正确转换数组。