Java 在没有具体值的情况下为信号事件提供流量?
如何使用随时间发出事件但没有任何具体值的项目设置流/发布者。我考虑了Java 在没有具体值的情况下为信号事件提供流量?,java,project-reactor,reactive-streams,Java,Project Reactor,Reactive Streams,如何使用随时间发出事件但没有任何具体值的项目设置流/发布者。我考虑了Flux,但是提到Flux是一个空流 例如,我使用文件系统更改的流Flux。我不需要路径值,但希望添加另一个事件。为此,我必须创建虚拟Path对象 Flux events=getFilesystemChanges(); events.startWith(路径为(“虚拟”)) .map(e->42/*后续运算符忽略发出的值*/) ... 是否有可能避免伪值,或者是否存在表示值不被读取的约定?反应流仅与对象一起工作(您永远不能流n
Flux
,但是提到Flux
是一个空流
例如,我使用文件系统更改的流Flux
。我不需要路径
值,但希望添加另一个事件。为此,我必须创建虚拟Path
对象
Flux events=getFilesystemChanges();
events.startWith(路径为(“虚拟”))
.map(e->42/*后续运算符忽略发出的值*/)
...
是否有可能避免伪值,或者是否存在表示值不被读取的约定?反应流仅与对象一起工作(您永远不能流
null
),并且由于Void
永远不能实例化,因此您永远不能发送任何值-只是一个完成信号
我不太确定这里的用例,但您可以考虑两种不同的方法:
- 如果不需要该值,则可以映射到
,即对象
然后,您可以执行Flux<Object> events = getFilesystemChanges().map(p -> new Object());
来预先设置流的“虚拟”路径events.startWith(可选的.empty())
Flux<Optional<Path>> events = getFilesystemChanges().map(Optional::of);