You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin Multiplatform中如何用benasher44/uuid库生成UUID赋值给实体类ID

使用benasher44/uuid库为Children数据类生成UUID

首先要明确:UUID是128位标识符,无法直接映射为Long类型(仅64位),会丢失数据。建议将id的类型改为库提供的Uuid类型或字符串类型,以下是具体实现步骤:

1. 添加依赖

在项目构建脚本中引入uuid库及序列化支持(适配@Serializable注解):

// build.gradle.kts(Kotlin DSL)
dependencies {
    implementation("com.benasher44:uuid:0.8.0") // 跨平台UUID核心库
    implementation("com.benasher44:uuid-serialization:0.8.0") // 支持kotlinx.serialization序列化Uuid类型
}

2. 修改Children数据类

将id的类型改为Uuid,并使用Uuid.randomUUID()作为默认值自动生成UUID:

import com.benasher44.uuid.Uuid
import kotlinx.serialization.Serializable

@Serializable
data class Children(
    // val parentId: Long,
    val id: Uuid = Uuid.randomUUID(),
    val gender: String,
    val firstName: String,
    val lastName: String,
    val birthDate: String,
    val grade: String,
    var avatar: String?,
)

如果业务需要将UUID存储为字符串(适配现有存储结构),可改为:

@Serializable
data class Children(
    // val parentId: Long,
    val id: String = Uuid.randomUUID().toString(),
    val gender: String,
    val firstName: String,
    val lastName: String,
    val birthDate: String,
    val grade: String,
    var avatar: String?,
)

3. 说明

该库已实现跨平台UUID生成逻辑,无需自行编写expect/actual的平台特定代码,直接调用Uuid.randomUUID()即可生成标准UUID,完全满足简化代码的需求。

内容的提问来源于stack exchange,提问作者user21508891

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:03:32