我班上有一个lateinit
属性。该类是一个ORM模型,它通过Java中的代码生成的读写层保存到SQLite。
以下是保存相关对象的生成代码的摘录。 MessageDirection
是enum
。
String refmsgDirection = model.msgDirection != null ? model.msgDirection.name() : null;
values.put("`msgDirection`", refmsgDirection != null ? refmsgDirection : null);
运行此代码我收到了以下崩溃报告:
异常android.database.sqlite.SQLiteConstraintException: NOT NULL 约束失败:Match.msgDirection(代码1299)
该属性被写为
@NotNull lateinit var msgDirection: MessageDirection
这使我强烈怀疑它是从Java访问null
而不立即抛出异常。
这个假设是否正确?