Junior — Middle
Kotlin-də companion obyektinin elan edilməsi üçün Java layihəsində tərtib edilərkən hansı bytecode yaradılır?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də, JVM bayt koduna tərtib zamanı, companion object bəyanatı Companion adında statik daxili sinfə çevrilir. Bu sinif, companion object-in bütün üzvlərini adi metodlar və sahələr kimi ehtiva edir.
Java kodunda, companion object-in üzvlərinə giriş üçün xarici sinfin statik sahəsi Companion-a istinad edilir.
Kotlin nümunəsi:
class MyClass {
companion object {
fun foo() = "Hello"
}
}
Tərtib olunmuş bayt kod MyClass$Companion sinfini və foo() metodunu ehtiva edəcək, və MyClass daxilində MyClass$Companion tipində statik sahə Companion olacaq.
Java-da bu təxminən belə görünür:
MyClass.Companion.foo();
Beləliklə, companion object, daxili sinif kimi həyata keçirilir və statik sahə vasitəsilə əldə edilə bilər.