首页 > 解决方案 > MutableLiveData NullPointerException 警告

问题描述

在 MVVM 结构中,在使用 MutableLiveData 时,即使我输入了一个初始值,我也会收到 Unboxing of ' loream.getValue()' 可能会产生 'NullPointerException' 的警告。什么是正确的使用方法getValue()

标签: android

解决方案


如果查看的源代码LiveData#getValue()可以看到它可以返回 null:

    @SuppressWarnings("unchecked")
    @Nullable
    public T getValue() {
        Object data = mData;
        if (data != NOT_SET) {
            return (T) data;
        }
        return null;
    }

所以你总是要考虑这个事实。您没有指定您使用的是 Kotlin 还是 Java(或者您是如何getValue()使用的),所以很难说。

通常,LiveData 流的值经常被观察到,因此如果您不“发布(或设置)”一个值,您就不可能得到一个空值。

如果您正在寻找具体建议,请发布更具体的示例。

如果您需要样品,谷歌这里有一个


推荐阅读