Java 如何通过订阅事件流来获取属性的源?

Java 如何通过订阅事件流来获取属性的源?,java,javafx,reactfx,Java,Javafx,Reactfx,如果我有一个JavaFX属性,并且我从该属性创建了一个事件流: EventStreams.nonNullValuesOf(node.boundsInParentProperty()) 是否可以在创建时设置源(在本例中为“节点”),或稍后在订阅中获取此对象 例如: EventStream<...> stream = EventStreams.nonNullValuesOf(node.boundsInParentProperty()); ... stream.subscribe((n

如果我有一个JavaFX属性,并且我从该属性创建了一个事件流:

EventStreams.nonNullValuesOf(node.boundsInParentProperty())
是否可以在创建时设置源(在本例中为“节点”),或稍后在订阅中获取此对象

例如:

EventStream<...> stream = EventStreams.nonNullValuesOf(node.boundsInParentProperty());

...
stream.subscribe((node, bounds) -> ...);
EventStream=EventStreams.nonNullValuesOf(node.boundsInParentProperty());
...
订阅((节点,边界)->…);
或在创建时:

EventStream<...> stream = EventStreams.valueAndSource(node.boundsInParentProperty(), node);
EventStream=EventStreams.valueAndSource(node.boundsInParentProperty(),node);

好的,我得到了我想要的:

EventStreams.nonNullValuesOf(node.boundsInParentProperty()).map(bounds -> ...)
我的问题是,我有一个包含N个节点对象的列表,这些对象在迭代时是可以访问的。解决了我的问题,比如:

EventStream<Tuple2<Node, Bounds>> eventStream = nodes.stream().
map(node -> EventStreams.nonNullValuesOf(node.boundsInParentProperty()).map(bounds -> Tuples.t(node, bounds))).
reduce((es, esAccu) -> EventStreams.merge(es, esAccu)).
orElse(EventStreams.never());
EventStream EventStream=nodes.stream()。
map(node->EventStreams.nonNullValuesOf(node.boundsInParentProperty()).map(bounds->Tuples.t(node,bounds)))。
reduce((es,esAccu)->EventStreams.merge(es,esAccu))。
orElse(EventStreams.never());