将 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
这似乎可以解决问题。
我正在尝试在 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
这似乎可以解决问题。