Kotlinde getter setter yazmaya gerek yoktur. Bir data class oluşturduğumuzda kotlin bunları otomatik olarak oluşturur.
Java'da bu şekildeyken:
Kotlin'de bu şekildedir:
Şaka gibi değil mi. Kotlin'de tek satır :d
Peki madem getter setter yazmıyoruz peki nasıl bu işleri nasıl yaptıracağız ? O da şu şekilde:
Peki getter setter da tamam ama neden ismini değiştireyim ? Onu da açıklayayım. Bildiğiniz üzere Java ve Kotlin beraber çalışabiliyorlar. Her ikiside Jvm language olduğu için bytecode üzerinden haberleşmekteler. Yani bir projede her iki dille yazılmış class'lar beraber kullanılabilir.
Diyelim ki benim önceden Java ile yazılmış bir projem var. Aşağıdaki gibi male diye bir değişkenim var. IDE yardımı ile de getter setter oluşturulmuş.
Fakat bu IDE Boolean türünden olan değişkenlerin getter'ını oluştururken mesela getMale() olarak değil de isMale() olarak oluşturmuş. Ve tüm projede bir sürü yerde isMale() olarak kullanılıyor.
Şimdi ben bu class'ı baştan kotlinle yazsam. Bir data class oluştursam ve doğru bir şekilde oluşturmuş olsam dahi proje patlar. Çünkü Kotlin data class'ın tüm değişkenlerinin getter setter'larını otormatik oluşturuyor. Java ile etkileşime girdiğinde Java kodu otomatik olarak isMale() kodunu ararken, Kotlin data class'ı getMale() diye sunuyor.
Bu durumda ya elle isMale() kodu yazılacak ki tavsiye etmem kodu uzatmak mantıklı değil. Hem erişimi arttırmış oluyoruz.
Ya da getter ismi değiştirmek. Kotlin bize burada yardımcı oluyor.
JvmName tagı ile kolayca getter setter ismini değiştirebiliriz. Setter için @set tagını eklememiz gerekiyor.
Buradaki sayfada gerekli tüm bilgiye ulaşabilirsiniz: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#instance-fields
(ctrl+f yapıp @get yazarak aratmanızı tavsiye ederim)
Java'da bu şekildeyken:
Kotlin'de bu şekildedir:
Şaka gibi değil mi. Kotlin'de tek satır :d
Peki madem getter setter yazmıyoruz peki nasıl bu işleri nasıl yaptıracağız ? O da şu şekilde:
Peki getter setter da tamam ama neden ismini değiştireyim ? Onu da açıklayayım. Bildiğiniz üzere Java ve Kotlin beraber çalışabiliyorlar. Her ikiside Jvm language olduğu için bytecode üzerinden haberleşmekteler. Yani bir projede her iki dille yazılmış class'lar beraber kullanılabilir.
Diyelim ki benim önceden Java ile yazılmış bir projem var. Aşağıdaki gibi male diye bir değişkenim var. IDE yardımı ile de getter setter oluşturulmuş.
Fakat bu IDE Boolean türünden olan değişkenlerin getter'ını oluştururken mesela getMale() olarak değil de isMale() olarak oluşturmuş. Ve tüm projede bir sürü yerde isMale() olarak kullanılıyor.
Şimdi ben bu class'ı baştan kotlinle yazsam. Bir data class oluştursam ve doğru bir şekilde oluşturmuş olsam dahi proje patlar. Çünkü Kotlin data class'ın tüm değişkenlerinin getter setter'larını otormatik oluşturuyor. Java ile etkileşime girdiğinde Java kodu otomatik olarak isMale() kodunu ararken, Kotlin data class'ı getMale() diye sunuyor.
Bu durumda ya elle isMale() kodu yazılacak ki tavsiye etmem kodu uzatmak mantıklı değil. Hem erişimi arttırmış oluyoruz.
Ya da getter ismi değiştirmek. Kotlin bize burada yardımcı oluyor.
JvmName tagı ile kolayca getter setter ismini değiştirebiliriz. Setter için @set tagını eklememiz gerekiyor.
Buradaki sayfada gerekli tüm bilgiye ulaşabilirsiniz: https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html#instance-fields
(ctrl+f yapıp @get yazarak aratmanızı tavsiye ederim)
Yorumlar
Yorum Gönder
Bir şeyler yaz...