0
我已经成功地创建这样说:如何在RxJava2中使用void Subject?
private final PublishSubject<Void> subject = PublishSubject.create();
但如何在价值传递onNext(T t)
给它?我无法将null传递给它,因为它会抛出异常。 onComplete
也不是一个选项。
我已经成功地创建这样说:如何在RxJava2中使用void Subject?
private final PublishSubject<Void> subject = PublishSubject.create();
但如何在价值传递onNext(T t)
给它?我无法将null传递给它,因为它会抛出异常。 onComplete
也不是一个选项。
在2.x中通常不允许空值,因此Void
类型不会让您发出任何onNext(null)
而不像1.x.如果你认为你需要Void
作为你的元素类型,这表明你不关心什么元素只是你想反复反复的东西。
对于这种情况,您可以改为使用任何其他类型并指示任何值。在wiki有可以调整的例子:
enum Irrelevant { INSTANCE; }
PublishSubject<Irrelevant > source = PublishSubject.create();
source.subscribe(e -> { /* Ignored. */ }, Throwable::printStackTrace);
source.onNext(Irrelevant.INSTANCE);
source.onNext(Irrelevant.INSTANCE);
谢谢您的回答。我只是想,也许在框架中有一些内置的类,我可以使用它。我认为将这个功能添加到框架是一个好主意。 –
我们没有内置任何人的业务对象的类型,否则想象你会受到我们没有特定字段或结构的RxUser对象的限制... – akarnokd