Я хотел бы знать, возможно ли использование субъекта только для подписки на определенный тип событий c Например, у меня есть перечисление ANIMAL
enum class ANIMAL {
DOG, CAT, PARROT
}
Затем я создаю тему
val animalSubject: PublishSubject<ANIMAL> = PublishSubject.create()
но я хочу подписаться только на CATS как это сделать? Это получает события всех животных.
animalSubject.subscribe { println("I want only Cats here $it") }
Я хочу подписаться только на собаку. Я могу использовать фильтр здесь, но он будет принимать все события и фильтровать только собак (не то, что я ищу)
animalSubject.filter {it == ANIMAL.DOG}.subscribe { println("Only Dogs here $it") }
Когда я вызываю onNext, событие будет отправлено всем наблюдателям. Поэтому я подумал, что может быть возможность получить наблюдателей от субъекта и каким-то образом проверить, на какое животное подписаны наблюдатели.
Я не уверен, возможно ли использование субъекта, но кто я? попытка избежать - отправить ВСЕ события всем наблюдателям. Может быть, было бы хорошо просто отправить события тем, кто подписан на эту спецификацию c Animal
Возможно ли это с субъектом или с другим оператором в Rx Java?