Java'dan Kotlin'e geçiş: null güvenliği, data class ve temel farklar

Editör 5 saat önce · 0 görüntülenme

Java bilen biri için Kotlin öğrenmek zor değildir; ikisi de JVM üzerinde çalışır ve aynı projede yan yana kullanılabilir. Android geliştirmede Kotlin artık varsayılan dildir. Bu rehberde geçişte en çok işine yarayacak farkları özetliyoruz.

Null güvenliği

Kotlin'de bir değişken varsayılan olarak null olamaz. Null olabilecekse tipin sonuna ? eklenir:

val ad: String = "Ayşe"      // null atanamaz
val soyad: String? = null    // null olabilir

val uzunluk = soyad?.length ?: 0   // güvenli çağrı + varsayılan değer

!! operatörü "bunun null olmadığına eminim" demektir ve null gelirse yine NullPointerException fırlatır. Kodda çok !! görüyorsan tasarımı gözden geçirmek gerekir.

val ve var

val değiştirilemez (Java'daki final), var değiştirilebilir. Mümkün olduğunca val kullanmak hataları azaltır.

Data class

Java'da getter, setter, equals, hashCode ve toString yazmak için onlarca satır gerekirken Kotlin'de tek satır yeterlidir:

data class Kullanici(val id: Int, val ad: String, val eposta: String?)

copy() ile bir kısmı değişmiş yeni nesne üretebilirsin: kullanici.copy(ad = "Mehmet").

Uzantı fonksiyonları

Var olan bir sınıfa, kaynağını değiştirmeden fonksiyon ekleyebilirsin:

fun String.basHarfBuyuk() = replaceFirstChar { it.uppercase() }

when ifadesi

Java'daki switch'in çok daha güçlü hali; değer döndürebilir ve tip kontrolü yapabilir:

val mesaj = when (kod) {
    200 -> "Tamam"
    404 -> "Bulunamadı"
    in 500..599 -> "Sunucu hatası"
    else -> "Bilinmiyor"
}

Geçişte pratik öneriler

  • Android Studio ve IntelliJ'de Java dosyasını Kotlin'e çeviren bir araç var (Code → Convert Java File to Kotlin). Çıktı çalışır ama genellikle "Java gibi yazılmış Kotlin"dir, elden geçirmek gerekir.
  • Mevcut projeyi bir anda çevirmek yerine yeni dosyaları Kotlin ile yazmaya başlamak daha az risklidir.
  • Eşzamanlı işler için Kotlin'in coroutine yapısını öğren; Android'de thread ve callback karmaşasını büyük ölçüde azaltır.

Geçiş sürecinde karşılaştığın derleme hatalarını ya da tasarım sorularını bu konunun altında paylaşabilirsin.

0

0 cevap

Henüz cevap yok. İlk cevabı sen yaz.

Cevap yaz

Cevap yazmak için giriş yapmalısın.

Konu bilgisi

  • Açılış12.11.2026
  • Son etkinlik5 saat önce
  • Cevap0
  • Görüntülenme0
  • Beğeni0
Yeni konu aç