Java 资源类和空参数

Java 资源类和空参数,java,android,mvvm,Java,Android,Mvvm,我有一个可变的实时数据: private MutableLiveData<Resource<LoginResponse>> loginRequestData = new MutableLiveData<>(); 正如您所猜测的,我正在使用这些实时数据进行网络请求。在网络请求之前,我希望通过以下行将其设置为加载模式: loginRequestData.setValue(Resource.loading(null)); 但我遇到以下编译器错误: 错误:找不到适

我有一个可变的实时数据:

private MutableLiveData<Resource<LoginResponse>> loginRequestData = new MutableLiveData<>();
正如您所猜测的,我正在使用这些实时数据进行网络请求。在网络请求之前,我希望通过以下行将其设置为加载模式:

loginRequestData.setValue(Resource.loading(null));
但我遇到以下编译器错误:

错误:找不到适用于setValue(资源)方法的方法 LiveData.setValue(资源)不适用(参数 不匹配;无法将资源转换为 资源管理方法 MutableLiveData.setValue(资源)不适用 (参数不匹配;资源无法转换为 (资源)


为什么我不能为
资源传递null参数。加载
方法?

您定义的
LiveData
需要
资源的实例,而不是您提供的
资源的实例。请尝试以下方法:

loginRequestData.setValue(Resource.loading(null));

这样,您就可以确保使用
加载
方法加载的空
资源
的类型是
资源

看起来没有合适的构造函数

new Resource<>(Status.LOADING, data, null);
新资源(Status.LOADING,data,null);

检查
数据
是否可以为空

你能检查一下吗,他使用的是同一个资源类和资源。加载(null)我的代码之间有什么区别?我不确定他们在本文中做了什么,但我不相信他们提供的所有代码都能像现在这样完美地构建和工作——可能有一些地方是错误的,这种情况经常发生。就你而言,我认为错误是显而易见的。我的解决方案对你有用吗?事实上,我刚刚意识到他们可能在用
@Suppress(“UNCHECKED_CAST”)
进行“欺骗”(或者可能没有,但看起来很可疑)。那么,我的解决方案解决了问题吗?如果答案有效,请将其标记为有效。否我收到两个编译器错误:错误:找不到符号变量加载和错误:找不到符号变量登录响应
loginRequestData.setValue(Resource.loading(null));
new Resource<>(Status.LOADING, data, null);