كيفية تحويل مصفوفة Kotlin لتمريرها إلى طريقة Java مع varargs (وسائط متغيرة الطول)
مرحبًا أيها الزملاء! أنا مبتدئ في Kotlin وقد واجهت مشكلة غير متوقعة عند استدعاء طريقة Java من كود Kotlin.
لدي كلاس 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) // خطأ في الترجمة!
```
أحصل على خطأ في الترجمة: *Type mismatch: inferred type is Array but String was expected*. أفهم أن المشكلة هي أن Kotlin لا يعرف كيفية فك المصفوفة تلقائيًا إلى varargs، كما تفعل Java.
لقد جربت استخدام `*` (spread-operator)، لكني لست متأكدًا إذا كان ذلك صحيحًا. أرشدوني إلى كيفية تحويل المصفوفة بشكل صحيح.