具有依赖元素的BooleanBinding

时间:2017-07-19 18:53:55

标签: javafx binding

我想像这样创建boolean bindin:

    BooleanBinding binding = Bindings.createBooleanBinding(
            () -> (context.getService() == null
                    || context.getService().getCurrentFamily() == null),
            context.serviceProperty(), context.getService().familyProperty());

但是在初始化时,serviceProperty的值为null,因此我在context.getService().familyProperty()上收到NullPointerException

我如何初始化此绑定。正确吗?

1 个答案:

答案 0 :(得分:1)

使用标准API,您可以

BooleanBinding binding = Bindings.select(context.serviceProperty(), family).isNull();

如果服务(在此示例中)为null,这有一个令人讨厌的习惯,即在标准输出上生成警告,尽管它仍然可以正常工作,尽管这些警告。对于这些用例,我喜欢Tomas Mikula的EasyBindReactFX库。例如,使用ReactFX 2.0,您可以按照

的方式执行某些操作
ObservableValue<Boolean> binding = 
    Val.map(context.serviceProperty(), service -> service.familyProperty())
        .flatMap(family -> family.isNull());