Kotlin के companion-ऑब्जेक्ट्स में @JvmStatic का उपयोग क्यों और कब करना चाहिए?
सभी को नमस्ते! मैंने Kotlin सीखना शुरू किया है और एक पुराने Java प्रोजेक्ट को फिर से लिख रहा हूँ। companion-ऑब्जेक्ट्स के साथ एक अजीब स्थिति का सामना करना पड़ा।
मेरे पास Kotlin में ऐसा कोड है:
```kotlin
class MyUtils {
companion object {
fun formatDate(date: Date): String {
// तारीख फ़ॉर्मेट करना
return SimpleDateFormat("yyyy-MM-dd", Locale.US).format(date)
}
const val MAX_COUNT = 100
}
}
```
Java कोड से मैं इस method को इस तरह कॉल करने की कोशिश कर रहा हूँ:
```java
String formatted = MyUtils.formatDate(new Date());
```
लेकिन compiler एक error दे रहा है! मुझे `MyUtils.Companion.formatDate(...)` लिखना पड़ता है, जो बहुत बुरा लगता है। मैंने `@JvmStatic` annotation के बारे में पढ़ा है, लेकिन पूरी तरह से समझ नहीं पाया:
1. Kotlin ऐसा व्यवहार क्यों करता है? Java में तो मैं सीधे st