كيفية ترجمة الطرق الثابتة من Java إلى Kotlin؟ (مكافئ static)
مرحباً بالجميع! أنا أنتقل من Java إلى Kotlin، وواجهت مشكلة. في Java، أستخدم غالباً الطرق الثابتة (static methods) للفئات المساعدة، مثلاً للتعامل مع التواريخ أو التحقق من صحة السلاسل النصية. إليك كود Java نموذجي:
```java
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.trim().isEmpty();
}
public static String capitalize(String str) {
if (str == null || str.isEmpty()) return str;
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
}
// الاستخدام:
if (StringUtils.isEmpty(userInput)) {
System.out.println("الإدخال فارغ");
}
```
أحاول نقل هذا إلى Kotlin، لكن الكلمة المفتاحية `static` غير موجودة في Kotlin. جربت كتابة `companion object`، لكنه يبدو مرهقاً بعض الشيء. بالإضافة إلى ذلك، سمعت عن ما يسمى "كائنات الرفيق" (companion objects) و"دوال المستوى الأعلى" (top-level functions)، لكنني لا أفهم تماماً الفرق بينهما ومتى يتم استخدام كل منهما.
أرجو توضيح ذلك، من فضلكم.