将 ObjectBox 的 @Entity class 和 kotlinx.serialization 组合会导致冲突

Combining @Entity class of ObjectBox and kotlinx.serialization results in conflict

我正在尝试在 Bundle 中传递数据 class。为此,需要序列化数据 class。但是,一旦您引入 @Serializable 注释与 @Entity 注释相结合,尤其是具有关系的数据 class 时,这似乎就会出现问题。

@Entity
@Serializable 
data class BasketItem(
    @Id var id: Long = 0,
    var barcode: String? = null,
    var productName: String? = null,
    var taxTypeID: Int = 0,
    var tax: Int = 0,
    var retailSellingPrice: Int = 0,
    var participatedInRule: Boolean = false,
    var looseItemMeasurement: Int = 0,
    var isAReturn: Boolean = false,
    var addedTimestamp: String? = null,
    var costPrice: Int = 0)

我目前正在使用 kotlinx.serialization。有什么方法可以实现对象框数据的序列化 class ?

如果您在两种语言(即 Java 和 Kotlin)之间使用数据 class,似乎如果您想序列化数据 class,您应该导入 java 可序列化的版本。我试图将数据 class 中的数据传递给 Java class,我使用的是 Kotlin 序列化,它似乎不适用于 java 代码库.最后,所有解决方案都是导入以下内容:

进口java.io.Serializable

并扩展数据 class

@Entity
data class BasketItem(
    @Id var id: Long = 0,
    var barcode: String? = null,
    var productName: String? = null,
    var taxTypeID: Int = 0,
    var tax: Int = 0,
    var retailSellingPrice: Int = 0,
    var participatedInRule: Boolean = false,
    var looseItemMeasurement: Int = 0,
    var isAReturn: Boolean = false,
    var addedTimestamp: String? = null,
    var costPrice: Int = 0,
) : Serializable 

这似乎可以解决问题。