@Serializable
- Kotlin kursu
- İleri seviye
- Ders 25/83
- 5 dk
@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
// Serializable annotation
// buraya yaz
import kotlinx.serialization.Serializable
fun main() {
}Örnek çözüm
@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
@____
data class User(val name: String)
@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 |