Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android房间:在实体中保存枚举_Android_Kotlin_Enums_Android Room - Fatal编程技术网

Android房间:在实体中保存枚举

Android房间:在实体中保存枚举,android,kotlin,enums,android-room,Android,Kotlin,Enums,Android Room,我试图在Android上的房间数据库中存储枚举值。但是,当从API中提取实体并试图保存到DB时,我得到了一个空指针异常。我已经尝试使用@Typeconverters注释对数据库类和实体类进行注释 我的实体类如下所示: @Entity @TypeConverters(SalesOrderStatusConverter::class) data class SalesOrder( @PrimaryKey val id: Int, ... var salesOrderStatu

我试图在Android上的房间数据库中存储枚举值。但是,当从API中提取实体并试图保存到DB时,我得到了一个空指针异常。我已经尝试使用
@Typeconverters
注释对数据库类和实体类进行注释

我的实体类如下所示:

@Entity
@TypeConverters(SalesOrderStatusConverter::class)
data class SalesOrder(
    @PrimaryKey val id: Int,
    ...
    var salesOrderStatus: SalesOrderStatus,
    ...
)
使用同一文件中的枚举类和转换器:

enum class SalesOrderStatus(value: Int) {
    UNPACKED(0),
    PACKED(1),
    SHIPPED(2),
    EXPORT(3)
}

class SalesOrderStatusConverter {
    @TypeConverter
    fun toSalesOrderStatus(value: Int): SalesOrderStatus = enumValues<SalesOrderStatus>()[value]

    @TypeConverter
    fun fromSalesOrderStatus(value: SalesOrderStatus): Int = value.ordinal
}
枚举类SalesOrderStatus(值:Int){ 未包装(0), 包装(1), 已装运(2), 出口(3) } 类SalesOrderStatusConverter{ @类型转换器 fun-toSalesOrderStatus(值:Int):SalesOrderStatus=enumValues()[value] @类型转换器 fun fromSalesOrderStatus(值:SalesOrderStatus):Int=value.ordinal } 当我导航到应用程序中的相应片段时,我收到以下错误消息,并且在从API获取数据并尝试保存数据后,应用程序崩溃:

java.lang.NullPointerException:指定为非null的参数为 null:方法kotlin.jvm.internal.Intrinsics.checkNotNullParameter, 参数值 位于com.android.sampleappname.data.model.SalesOrderStatusConverter.fromSalesOrderStatus(未知 资料来源:2)

当我将
var-salesforderstatus:salesforderstatus
更改为
var-salesforderstatus:Int
时,一切正常


我做错了什么?

@TypeConverters
RoomDatabase一起使用class@StanislavBondar我也试过同样的问题不幸的是这能回答你的问题吗@不,我也尝试过用TypeConverters注释来注释我的数据库类