Java ReactFX使用者正在侦听多个EventStream

Java ReactFX使用者正在侦听多个EventStream,java,events,javafx,reactive-programming,reactfx,Java,Events,Javafx,Reactive Programming,Reactfx,这个问题可能是针对ReactFX的创建者,但欢迎其他人回答 我现在开始在JavaFX应用程序中使用ReactFX进行数据共享和事件处理。我的问题是,一个类如何订阅收听来自两个(或更多)不同EventStreams的事件。假设在控制器类中,我有一个文本字段,该字段可以用新文本(字符串)更新,因此该类将实现消费者。但是,您可能还希望此文本字段更新为一个来自完全不同来源的新整数(例如),因此它必须实现消费者,但您不能这样做,因为它已经实现了消费者 我考虑创建一个bundle类,其中包含一个id字段(例

这个问题可能是针对ReactFX的创建者,但欢迎其他人回答

我现在开始在JavaFX应用程序中使用ReactFX进行数据共享和事件处理。我的问题是,一个类如何订阅收听来自两个(或更多)不同
EventStreams
的事件。假设在
控制器类
中,我有一个
文本字段
,该字段可以用
新文本(字符串)
更新,因此该类将实现
消费者
。但是,您可能还希望此
文本字段
更新为一个来自完全不同来源的
新整数
(例如),因此它必须实现
消费者
,但您不能这样做,因为它已经实现了
消费者


我考虑创建一个bundle类,其中包含一个id字段(例如
Enum
)和一个包含数据的
Object字段,让我们将其命名为
ReactFXEventBundle
。只有此类的实例才能用作
事件
,消费者可以通过分析id字段来识别事件的类型。因此,所有消费者类都将实现
消费者
。这是正确的方法吗?

为了确保我们的观点一致,我假设您的情况是这样的

class Controller {
    TextField getTextField();
}

EventStream<String> strings;
EventStream<Integer> integers;
换句话说,将整数流转换为字符串流,合并两个字符串流,并将合并后的流馈送到字段的文本属性中。(
feedTo(property)
只是
subscribe(property::set)
的缩写)


请注意,您的控制器类不必直接实现
Consumer
。消费者实例是从
属性::set
方法引用创建的。

感谢您的回答,它肯定会让我考虑使用EventStream组合的所有可能性!
EventStreams.merge(
    strings,
    integers.map(Integer::toString)
).feedTo(controller.getTextField().textProperty());