如何在RxJava2中使用void Subject?

时间:2017-08-30 09:32:59

标签: java android rx-java2 subject

我设法以这种方式创建它:

private final PublishSubject<Void> subject = PublishSubject.create();

但是如何在onNext(T t)中传递价值呢?我无法将null传递给它,因为它会抛出异常。 onComplete也不是一个选项。

2 个答案:

答案 0 :(得分:8)

2.x中通常不允许空值,因此{1. 1}类型不会让您发出任何n=12 m = (0,1,2) print n and m # Result (0, 1, 2) print n or m # Result 12 ,而不像1.x.如果您认为自己需要Void作为元素类型,则表明您不关心哪些元素只是您想要反复做出反应。

对于这种情况,您可以使用任何其他类型并发出任何值的信号。在wiki中有一个可以适应的例子:

onNext(null)

答案 1 :(得分:0)

科特林中,您可以使用任何对象:

val source = PublishSubject.create<Unit>()

source.onNext(Unit)