CodeBlanks Logo Icon CodeBlanks

@Serializable

@Serializable ile sınıf serileştirme öğrenirsin.

@Serializable annotation'ı

@Serializable, bir Kotlin sınıfının JSON gibi formatlara çevrilebilmesini sağlayan annotation'dır. kotlinx.serialization kütüphanesinden gelir.

Bir data class'a @Serializable eklersin; derleyici otomatik olarak serializer üretir. Örnek: @Serializable data class User(val name: String, val age: Int). Bu sınıf JSON'a ve JSON'dan kolayca çevrilir. Özelliklerin val olması önerilir; mutable özellikler serileştirmede sorun çıkarabilir. Tüm özelliklerin serileştirilebilir türden olması gerekir.

@Serializable kullanımı

Bir sınıfa @Serializable eklemek için en üstüne @Serializable yazar ve import kotlinx.serialization.Serializable eklersin.

Örnek: @Serializable data class Product(val name: String, val price: Double). Bu sınıf artık JSON'a çevrilebilir. Json.encodeToString(product) çağrısı bir JSON metni döndürür. Json.decodeFromString<Product>(json) ise JSON metni bir Product nesnesine çevirir. Tüm bu işlemler derleme zamanında tür güvenli şekilde yapılır.

Uygulama Serializable User tanımla

@Serializable ile işaretli data class User(val name: String) tanımla. main içinde val user = User("Ayşe") yap ve println("Merhaba, ${user.name}!") yazdır.

Başlangıç kodu

Main.kt
// Serializable annotation
// buraya yaz
import kotlinx.serialization.Serializable

fun main() {
    
}

Örnek çözüm

Main.kt
@Serializable
data class User(val name: String)

fun main() {
    val user = User("Ayşe")
    println("Merhaba, ${user.name}!")
}

Beklenen çıktı

Merhaba, Ayşe!

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi @Serializable annotation'ının görevidir?

  • Sınıfı serileştirilebilir yapar Doğru cevap
  • Sınıfı final yapar
  • Sınıfı thread-safe yapar
  • Sınıfı singleton yapar

Açıklama: @Serializable sınıfı serileştirilebilir yapar.

2 Annotation adını tamamla

Soru
@____
data class User(val name: String)
Cevap
@Serializable
data class User(val name: String)

Açıklama: @Serializable ile sınıf işaretlenir.

3 Serializable parçalarını eşle

Kavram Anlamı
@Serializable Sınıfı işaretler
data class Veri sınıfı
val Değişmez özellik
kotlinx.serialization Kütüphane

İleri seviye bölümündeki tüm dersler