在MVVM结构中,当使用MutableLiveData时,即使我放了一个初始值,我也得到了“loream.getValue()”的拆箱可能会产生“NullPointerException”的警告。使用getValue()的正确方法是什么?
发布于 2021-10-15 09:18:27
如果您查看LiveData#getValue()的the source code,您可以看到它可以返回null:
@SuppressWarnings("unchecked")
@Nullable
public T getValue() {
Object data = mData;
if (data != NOT_SET) {
return (T) data;
}
return null;
}所以你总是要考虑到这一事实。您没有具体说明您使用的是Kotlin还是Java (或者您是如何使用getValue()的),所以很难说。
通常,LiveData流的值经常被观察到,因此如果您不"post (或set)“一个值,您就不可能得到NULL值。
如果你正在寻找具体的建议,请贴出一个更具体的例子。
如果你需要样本,Google has one here。
https://stackoverflow.com/questions/69582264
复制相似问题