Я думаю, у вас есть liveData
объект, но liveData.value
дает вам ноль.
, и если у вас есть наблюдатель, он получит null
независимо от того, LiveData<Example>
или LiveData<Example?>
для более подробной информации, вы можете увидеть yourDao_impl.java
, который генерирует Комната для вас.
и обратите внимание на то, что: он не обязательно будет ненулевым
@Override
public LiveData<Experiment> queryLiveData(final String profileId) {
final String _sql = "SELECT * FROM experiment WHERE profileId= ?";
return __db.getInvalidationTracker().createLiveData(new String[]{"experiment"}, false, new Callable<Experiment>() {
@Override
public Experiment call() throws Exception {
...
final Experiment _result;
if(_cursor.moveToFirst()) {
_result = new Experiment();
final String _tmpProfileId;
_tmpProfileId = _cursor.getString(_cursorIndexOfProfileId);
} else {
_result = null;
}
return _result;
} finally {
_cursor.close();
}
}
и не используйте LiveData<Example>?
, кажется, это не помогает, но дает вам NPE.