我想要有一个数据类来实现以下功能:
data class VariantModal (
val variantId: String,
val variantName: String,
val variantUnit: List<String> || variantUnitOptions
val productId: String,
val variantQuantity: Int
)
变量单元可以是字符串列表或枚举值,
enum class variantUnitOptions {
KG,
BUNDLE,
BOX,
PIECE
}
因为我们不能使用OR LIKE||,所以我try 使用密封类以这种方式拥有字符串或枚举列表,
sealed class VariantUnit<T>(val value: T) {
class ListOfUnits(value: List<String>) : VariantUnit< List<String>>(value)
class SelectedUnit(value: variantUnitOptions) : VariantUnit<variantUnitOptions (value)
}
data class VariantModal (
val variantId: String,
val variantName: String,
val variantUnit: VariantUnit<>, //error here
val productId: String,
val variantQuantity: Int
)
但是在这种方式下,我得到了预期的类型错误,我现在不能给出类型,因为它可以是List<String>
或variantUnitOptions
.如何实现预期的行为?如有任何帮助,我们不胜感激.
提前谢谢你