В 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
A
ответ
2
Один из способов заключается в разделении входных и выходных точек:
Subject<T> input = ...;
Observable<R> output = input.map(...);
Предыдущее использование предмета может быть направлено на output
а вход перенаправляется через input
.
Вы уже создали свои собственные темы? Мы не видели никакого использования для Subject, так как для него требуется специальная реализация темы, которая является передовой темой. –
akarnokd
@akarnokd Не раньше, потому что я конвертирую старый код с цепными обратными вызовами в Rx. Один обратный вызов (теперь Observable) доставляет массивы байтов, которые передаются в веб-службу, которая через некоторое время возвращает фрагментированный текст, и нет корреляции 1: 1 между количеством массивов байтов и количеством возвращенных строк. Это не проблема преобразования текста в байтовые массивы, но это тоже не очень. – aha