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