Junior — Middle
Kotlinде companion object жарыялоо үчүн Java долбоорунда компиляциялоо учурунда кайсы байткод түзүлөт?
sobes.tech AI
AIден жооп
Kotlin'da, JVM байт кодго компиляция кылганда, companion object билдирүүсү Companion деп аталган статикалык ички класска айлантирылат. Бул класс, companion objectнин бардык мүчөлөрүн жөнөкөй методдор жана талаалар катары камтыйт.
Java кодунда, companion object мүчөлөрүнө кирүү үчүн тышкы классдын статикалык талаасы Companionга шилтеме колдонулат.
Kotlin мисалы:
class MyClass {
companion object {
fun foo() = "Hello"
}
}
Тамга байткод MyClass$Companion классын жана foo() методун камтыйт, жана MyClass ичинде MyClass$Companion тибиндеги статикалык талаа Companion болот.
Javaда бул болжол менен мындай көрүнөт:
MyClass.Companion.foo();
Ошентип, companion object singleton ички класс катары ишке ашырылат жана статикалык талаа аркылуу жеткиликтүү болот.