Sobes.tech
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.