观察者具有onNext(),OnError()和onComplete()。 有没有办法添加其他方法?
通过流接收的对象可能是两种类型而不是同一类型。两种可能性都是成功的方案。观察者只是对它们进行了不同的处理。
现在,使用回调,可以添加一个新方法来处理此问题。 但不确定如何使用Rx完成此操作。 还是有另一种无需添加新方法即可处理此问题的方法?
谢谢
答案 0 :(得分:0)
我认为实现此目标的最佳方法是使用可以容纳两个对象的通用超类。
在Kotlin中,您可以使用Java中的sealed class
通过简单的POJO来实现。缺点是必须使用instanceOf
和casting
才能使用实际类型。
public class Result<T> {
public T result;
public Result(T result) {
this.result = result;
}
}
public class Result1 extends Result<Object1> {
public Result1(Object1 result) {
super(result);
}
}
public class Result2 extends Result<Object2> {
public Result2(Object2 result) {
super(result);
}
}
您的Observable
可以发出Result
个对象,并且您可以根据在onNext
方法中得到的结果强制转换为任一结果。