Я думаю, что лучший способ достичь этого - использовать общий суперкласс, который может содержать оба объекта.
В Kotlin вы можете сделать это с помощью sealed class
в Java, сделайте это с помощью простого 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
.