TypeMismatchError Nedir?
Diyelim ki, bir `String` türündeki bir değeri bir `Int` türüne atamaya çalıştınız. Kotlin, bu durumu fark edip size TypeMismatchError hatasını verir.
TypeMismatchError'a Örnek
fun main() {
val myNumber: Int = "123" // Hata: String türü, Int türüne atanamaz
println(myNumber)
}
Yukarıdaki kodu çalıştırdığınızda TypeMismatchError hatası alırsınız çünkü `"123"` bir `String` türüdür ve bunu `Int` türüne atamaya çalışmak, Kotlin'in kurallarına aykırıdır. Bu hatayı çözmek için doğru tür dönüşümünü yapmamız gerekir.
TypeMismatchError'u Nasıl Çözebilirsiniz?
# 1. Tür Dönüşümü Kullanmak
fun main() {
val myNumber: Int = "123".toInt() // String'i Int'e dönüştürdük
println(myNumber)
}
Burada, `toInt()` fonksiyonu ile `"123"` değerini bir `Int` değerine dönüştürdük ve kodumuz artık sorunsuz çalışacaktır.
# 2. Nullable Tür Kullanmak
fun main() {
val myNumber: Int? = "123".toIntOrNull() // Nullable tür kullandık
println(myNumber)
}
Yukarıdaki örnekte, `toIntOrNull()` fonksiyonu kullanılarak, dönüşüm başarısız olursa null döndürülmesi sağlanmıştır. Bu sayede hata alma riskimiz azalır.
TypeMismatchError Hatası Nerelerde Karşılaşılır?
1. Yanlış türdeki değerlerin atanmaya çalışılması
Bu, yukarıda verdiğimiz örnekle aynıdır. Örneğin, bir `String` değeri, bir `Int` türüne atanamaz.
2. Karmaşık veri yapıları kullanılırken tür uyumsuzluğu
Bir fonksiyona veya sınıfa, beklenen türün dışında veri gönderilmesi bu hatayı tetikleyebilir.
3. Generics kullanırken tür uyumsuzluğu
Kotlin'deki generic türlerde, doğru türlerin kullanılması gerektiği için uyumsuzluk durumlarında bu hata alınabilir.
Sonuç
Kotlin, tür güvenliği sağlamak için oldukça güçlü bir dil. Kod yazarken dikkatli olursanız, TypeMismatchError gibi hataları en aza indirirsiniz. Şimdi, siz de kendi projelerinizde bu tür hataları kolayca tespit edebilir ve hızlıca çözebilirsiniz.