我想像这样创建boolean bindin:
BooleanBinding binding = Bindings.createBooleanBinding(
() -> (context.getService() == null
|| context.getService().getCurrentFamily() == null),
context.serviceProperty(), context.getService().familyProperty());
但是在初始化时,serviceProperty的值为null,因此我在context.getService().familyProperty()
上收到NullPointerException
我如何初始化此绑定。正确吗?
答案 0 :(得分:1)
使用标准API,您可以
BooleanBinding binding = Bindings.select(context.serviceProperty(), family).isNull();
如果服务(在此示例中)为null,这有一个令人讨厌的习惯,即在标准输出上生成警告,尽管它仍然可以正常工作,尽管这些警告。对于这些用例,我喜欢Tomas Mikula的EasyBind或ReactFX库。例如,使用ReactFX 2.0,您可以按照
的方式执行某些操作ObservableValue<Boolean> binding =
Val.map(context.serviceProperty(), service -> service.familyProperty())
.flatMap(family -> family.isNull());