Как вызвать функции-расширения Kotlin из Java и почему они не видны?
```html
مرحباً بالجميع! أنا مبتدئ في Kotlin، أنتقل من Java. كتبت دالتين موسعتين للصنف String في ملف منفصل Utils.kt:
```kotlin
// Utils.kt
package com.example.utils
fun String.isEmail(): Boolean = this.contains("@")
fun String.capitalizeWords(): String = this.split(" ").joinToString(" ") { it.capitalize() }
```
في Kotlin كل شيء يعمل بشكل ممتاز، ولكن عندما أحاول استدعاء هذه الدوال من كود Java، يقوم IDE بتسليط الضوء عليها باللون الأحمر:
```java
// Main.java
import com.example.utils.UtilsKt; // الاستيراد ظهر، ولكن...
public class Main {
public static void main(String[] args) {
String email = "test@example.com";
// خطأ: Cannot resolve method 'isEmail'
System.out.println(email.isEmail());
// وكذلك هذا لا يعمل:
// System.out.println(UtilsKt.isEmail(email));
}
}
```
لقد قرأت أن Kotlin يقوم بترجمة الدوال الموسعة إلى طرق ثابتة، ولكن لماذا لا تكون مرئية كطرق عادية للصنف String؟
```