كيفية استبدال الطرق الثابتة من Java في Kotlin: دليل كامل
مرحبًا! لقد بدأت للتو في تعلم Kotlin بعد عدة سنوات من العمل مع Java، وواجهت بعض الارتباك. في Java، كنت أستخدم الطرق الثابتة (static methods) بشكل متكرر لإنشاء فئات الأدوات (utility classes) أو المصانع (factories) أو الثوابت (constants). على سبيل المثال:
```java
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.trim().isEmpty();
}
public static final String APP_NAME = "MyApp";
}
```
في Kotlin، لا يمكنني ببساطة كتابة `static`. عندما جربت:
```kotlin
class StringUtils {
static fun isEmpty(str: String?): Boolean { // خطأ!
return str == null || str.trim().isEmpty()
}
}
```
يُصدر المترجم خطأ: "Modifier 'static' is not applicable inside 'top level'". لقد بحثت في Google ووجدت شيئًا عن `companion object`، لكنني لم أفهم تمامًا كيف يعمل. على سبيل المثال، أريد:
1. إنشاء فئة أدوات (utility class) تحتوي على طرق يمكن استدعاؤها دون إنشاء مثيل (instance) (مثل `Math.abs()`).
2. تعريف ثوابت (constants) يمكن الوصول إليها من أي مكان.