【发布时间】:2018-04-07 05:22:02
【问题描述】:
在 JavaFX 的 Property 中,您可以通过 val.isNull() 和 val.isNonNull() 获得 null 或非 null 的布尔绑定。
这在 ReactFX 中的等价物是什么?
我试过了:
val.map(v -> v == null)
但它会返回一个Val<Boolean>,实际值为null,而不是true(这与其他情况下的预期一致)。
【问题讨论】:
在 JavaFX 的 Property 中,您可以通过 val.isNull() 和 val.isNonNull() 获得 null 或非 null 的布尔绑定。
这在 ReactFX 中的等价物是什么?
我试过了:
val.map(v -> v == null)
但它会返回一个Val<Boolean>,实际值为null,而不是true(这与其他情况下的预期一致)。
【问题讨论】:
我认为
val.map(v -> false).orElseConst(true)
会给你你需要的。
【讨论】:
map 之上的一个额外调用(orElseConst(true)),它可能并不能证明额外的API 是合理的。此外,这里的一般理念是null 应该代表“没有价值”,而不是“特殊价值”; orElse 和 orElseConst 专门用于您想要表示“特殊值”的情况。
orElseConst给了你isNull() 和 isNotNull()(只是反向true和false),以及许多其他有用的功能。因此,API 的权衡(API 膨胀与便利性)同样不值得。