2016-12-14 2 views
0

Dans RxJava 1.x, il était possible de faire une conversion T -> R dans un Subject. Par exemple, le type d'entrée peut être Integer et le type de sortie peut toujours être String. Dans RxJava 2.0 cette option a été supprimée, maintenant c'est juste Subject<T> au lieu de Subject<T,R>. Ce changement est également mentionné dans le document What's different in 2.0 sur le wiki RxJava, mais malheureusement aucun remplacement n'est donné. Y at-il en dehors de déclarer le Subject comme Subject<Object>?RxJava 2: remplacement pour le sujet <T,R>

+0

Avez-vous créé vos propres sujets personnalisés avant? Nous n'avons vu aucune utilisation pour le sujet , car il nécessite une mise en œuvre personnalisée sujet qui est un sujet avancé. – akarnokd

+0

@akarnokd Pas avant parce que je suis en train de convertir du code ancien avec des rappels chaînés en Rx. Un callback (maintenant observable) délivre des tableaux d'octets qui sont transmis à un service web qui renvoie du texte fragmenté après un certain temps et il n'y a pas de corrélation 1: 1 entre le nombre de tableaux d'octets et le nombre de chaînes retournées. Ce n'est pas un problème de convertir du texte en tableaux d'octets mais ce n'est pas joli non plus. – aha

Répondre

2

Une méthode consiste à regrouper les points d'entrée et de sortie:

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

utilisations précédentes de l'objet peuvent être adressées à output tandis que l'entrée est redirigé à travers input.