Java 何时使用;suppressWhen(…)”字样;或;过滤器(…)“;?
我对“suppressWhen(…)”和“filter(…)”这两种方法有疑问,如果在上下文中使用它们会有任何区别,例如: 我有一个布尔属性,如:Java 何时使用;suppressWhen(…)”字样;或;过滤器(…)“;?,java,javafx,reactfx,Java,Javafx,Reactfx,我对“suppressWhen(…)”和“filter(…)”这两种方法有疑问,如果在上下文中使用它们会有任何区别,例如: 我有一个布尔属性,如: BooleanProperty bp = new SimpleBooleanProperty(); 我有一系列的价值观,比如: var.values()... 如果BooleanProperty bp为false,我想过滤流时有什么区别吗 var.values().suppressWhen(bp.not())... 或 很明显,“suppres
BooleanProperty bp = new SimpleBooleanProperty();
我有一系列的价值观,比如:
var.values()...
如果BooleanProperty bp
为false,我想过滤流时有什么区别吗
var.values().suppressWhen(bp.not())...
或
很明显,“suppressWhen”创建了一个“SuspendedHenstream”的实例,并使用了一个“SuspendableEventStream”,所以最好问问这里什么最有意义
创建一个额外的“SuspendableEventStream”或类似的东西是否更无效
这里什么最有意义
明确使用suppressWhen
,仅仅因为它是为该用例设计的。您可以直接提供绑定,而无需手动计算。使用filter
将是一种黑客行为,因为它是为流的每个元素而设计的,而不是为整个流
它是否更[…]高效[?]
当然,您需要自己测试执行速度,但我非常确定使用suppressWhen
更有效:
即使创建一个新的流(或一个新的对象)可能首先需要额外的资源,这些资源将在以后保存。使用filter
,必须为流中的每个新事件元素计算条件,但使用suppressWhen
,仅在需要时(自动)计算条件
这里什么最有意义
明确使用suppressWhen
,仅仅因为它是为该用例设计的。您可以直接提供绑定,而无需手动计算。使用filter
将是一种黑客行为,因为它是为流的每个元素而设计的,而不是为整个流
它是否更[…]高效[?]
当然,您需要自己测试执行速度,但我非常确定使用suppressWhen
更有效:
即使创建一个新的流(或一个新的对象)可能首先需要额外的资源,这些资源将在以后保存。使用
filter
,必须为流中的每个新事件元素计算条件,但使用suppressWhen
,仅在需要时(自动)计算条件 详细信息可以在另一个EventStream观察suppressWhen条件或属性的“Suspendable”界面中看到。详细信息可以在另一个EventStream观察suppressWhen条件或属性的“Suspendable”界面中看到。
var.values().filter(val -> bp.getValue())...