Junior — Middle
Kotlin'de companion object bildirilirken Java projesinde derlenirken hangi bytecode üretilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de, JVM bayt koduna derlenirken, companion object bildirimi Companion adında statik iç içe sınıfa dönüştürülür. Bu sınıf, companion object'in tüm üyelerini normal metodlar ve alanlar olarak içerir.
Java kodunda, companion object üyelerine erişmek için dış sınıfın statik alanı Companion referansı kullanılır.
Kotlin örneği:
class MyClass {
companion object {
fun foo() = "Hello"
}
}
Derlenmiş bayt kod, MyClass$Companion sınıfını ve foo() metodunu içerir, ve MyClass içinde MyClass$Companion türünde statik bir alan Companion bulunur.
Java'da bu yaklaşık şu şekilde görünür:
MyClass.Companion.foo();
Bu şekilde, companion object, iç içe tekil bir sınıf olarak uygulanır ve statik alan aracılığıyla erişilir.