2016-12-14 3 views
0

В RxJava 1.x удалось сделать преобразование T -> R в Subject. Например, тип ввода может быть Integer, а тип вывода все равно может быть String. В RxJava 2.0 эта опция была удалена, теперь это только Subject<T> вместо Subject<T,R>. Это изменение также упоминается в документе What's different in 2.0 в вики RxJava, но, к сожалению, эта замена не указана. Есть ли кроме объявления Subject как Subject<Object>?RxJava 2: Замена на предмет <T,R>

+0

Вы уже создали свои собственные темы? Мы не видели никакого использования для Subject , так как для него требуется специальная реализация темы, которая является передовой темой. – akarnokd

+0

@akarnokd Не раньше, потому что я конвертирую старый код с цепными обратными вызовами в Rx. Один обратный вызов (теперь Observable) доставляет массивы байтов, которые передаются в веб-службу, которая через некоторое время возвращает фрагментированный текст, и нет корреляции 1: 1 между количеством массивов байтов и количеством возвращенных строк. Это не проблема преобразования текста в байтовые массивы, но это тоже не очень. – aha

ответ

2

Один из способов заключается в разделении входных и выходных точек:

Subject<T> input = ...; 
Observable<R> output = input.map(...); 

Предыдущее использование предмета может быть направлено на output а вход перенаправляется через input.