Как я уже упоминал в комментарии: вы можете разделить архивирование на 2 наблюдаемые, а затем снова сжать.Таким образом, это будет выглядеть следующим образом:
Observable<TmpObjectForFirstSeven> zip1 = Observable.zip(
observable1,
observable2,
observable3,
observable4,
observable5,
observable6,
observable7,
{(o1, o2, o3, o4, o5, o6, o7) ->
new TmpObjectForFirstSeven(o1, o2, o3, o4, o5, o6, o7)
}
)
Observable<TmpObjectForFirstThree> zip2 = Observable.zip(
observable8,
observable9,
observable10,
{(o8, o9, o10) ->
new TmpObjectForSecondThree(o8, o9, o10)
}
)
Observable<SaleFile> observable = Observable.zip(
zip1,
zip2,
{(tmpForSeven, tmpForThree) ->
new SaleFile().withA(account)
.withB(tmpForSeven.o1())
.withC(tmpForSeven.o2())
.withD(tmpForSeven.o3())
.withE(tmpForSeven.o4())
.withF(tmpForSeven.o5())
.withG(tmpForSeven.o6())
.withH(tmpForSeven.o7())
.withI(tmpForThree.o8())
.withJ(tmpForThree.o9()))
}
)
Где TmpObjectForFirstThree
и TmpObjectForFirstSeven
- это некоторые классы данных, которые имеют только 3 и 7 полей.