我试图创建一个可观察的集合,然后在该集合中添加一个observable。
现在在这段代码中,它说= new Observable<ArrayList<DMRegistration>>();
在rx.Observable中保护了访问权限,并且不会实例化。
还有dmRegistrations.add(dmRegistration);
抱怨add
说它无法解决方法&#39;添加(rx.Observable)&#39;
我是一个非常新的可观察者并且用谷歌搜索过,但没有发现任何提供信息导致可能的解决方案。我是以错误的方式接近这个吗?
@Override
public Observable<Collection<DMRegistration>>getAllRegistrations() throws DMException{
try{
Observable<Collection<DMRegistration>> dmRegistrations = new Observable<ArrayList<DMRegistration>>();
Observable<DMRegistration> dmRegistration = execute(get(baseUrl + "registrations"), DMRegistration.class);
dmRegistrations.add(dmRegistration);
return dmRegistrations;
}catch(RestException e){
throw new DMException(e);
}
}
答案 0 :(得分:2)
好吧,如果Observable
构造函数具有受保护的访问权限,那么除非您在Observable
类或Observable
的子类中工作,否则不能使用它。因此,如果您希望使用最少的更改来完成此工作,则必须使此类成为Observable
的子类或将构造函数设为公共,但是根据您的情况可能会或可能不会。
编译器抱怨无法解决add(rx.Observable)
的原因是因为它意味着它所说的内容。它找不到与Observable
类中的名称/参数组合匹配的方法。可能是因为Observable
参数化的方式,因为看起来add()
正在寻找与您想要输入的类型不同的类型。
我在这里对Observable
的结构做了一些猜测,但是你想要添加的元素类型似乎与{{1}的元素类型不匹配拿走。您声明dmRegistrations
为dmRegistrations
,(我假设)表示您正在观察Observable<Collection<DMRegistration>>
。您尝试添加Collection<DMRegistration>
类型的对象,这不是Observable<DMRegistration>
正在寻找的对象,除非add()
实现Observable
。