91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Kotlin數據類如何序列化

小樊
87
2024-11-05 10:41:11
欄目: 編程語言

在 Kotlin 中,數據類(data class)是一種特殊的類,用于存儲簡單的數據結構

  1. 使用 Java 標準庫中的 Serializable 接口:

首先,讓你的數據類實現 Serializable 接口。然后,在類定義中添加一個 init 塊,用于生成 serialVersionUIDserialVersionUID 是一個用于識別類版本的唯一標識符,它在反序列化過程中起到關鍵作用。

import java.io.Serializable

data class User(val name: String, val age: Int) : Serializable {
    init {
        serialVersionUID = 1L
    }
}

現在,你可以使用 Java 標準庫中的 ObjectOutputStreamObjectInputStreamUser 數據類進行序列化和反序列化。

import java.io.*

fun main() {
    val user = User("Alice", 30)

    // 序列化
    val fileOut = FileOutputStream("user.ser")
    val out = ObjectOutputStream(fileOut)
    out.writeObject(user)
    out.close()
    fileOut.close()

    // 反序列化
    val fileIn = FileInputStream("user.ser")
    val inStream = ObjectInputStream(fileIn)
    val user2 = inStream.readObject() as User
    inStream.close()
    fileIn.close()

    println("Deserialized user: $user2")
}
  1. 使用 Kotlin 序列化庫(kotlinx.serialization):

首先,你需要在項目的 build.gradle.kts 文件中添加 kotlinx.serialization 插件和庫的依賴。

plugins {
    kotlin("jvm") version "1.5.31"
    kotlin("plugin.serialization") version "1.5.31"
}

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0")
}

接下來,為你的數據類添加 @Serializable 注解。這將自動生成一個用于序列化和反序列化的 KClass 實例。

import kotlinx.serialization.Serializable

@Serializable
data class User(val name: String, val age: Int)

現在,你可以使用 Kotlin 序列化庫提供的 Json 類對 User 數據類進行序列化和反序列化。

import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

fun main() {
    val user = User("Alice", 30)

    // 序列化
    val json = Json.encodeToString(user)
    println("Serialized user: $json")

    // 反序列化
    val user2 = Json.decodeFromString<User>(json)
    println("Deserialized user: $user2")
}

這就是在 Kotlin 中序列化數據類的方法。你可以根據自己的需求選擇合適的方法。

0
土默特右旗| 那曲县| 佛山市| 佛坪县| 牙克石市| 呈贡县| 舒兰市| 邢台县| 康定县| 涡阳县| 敦煌市| 襄城县| 阿合奇县| 廉江市| 阿瓦提县| 垦利县| 博乐市| 齐河县| 清新县| 陇西县| 靖州| 太谷县| 依安县| 昌邑市| 丰台区| 台北县| 澜沧| 宁南县| 博爱县| 珲春市| 全南县| 绥中县| 黎平县| 宁都县| 台北市| 托克逊县| 洛隆县| 长垣县| 顺平县| 綦江县| 呼玛县|