Java 两个布尔属性之间的双向反向绑定

Java 两个布尔属性之间的双向反向绑定,java,javafx,Java,Javafx,首先,天真的尝试: booleanProperty1.bindBidirectional(booleanProperty2.not());//类型不匹配 这不管用。我要么将其更改为单向绑定(因此它将接受BooleanBinding作为参数),要么删除.not() 在这里实现我的目标的最佳方式是什么?为booleanProperty2添加一个侦听器 当其值更改(触发侦听器)时,将booleanProperty设置为booleanProperty2的反面。最简单的方法是将侦听器同时包含到属性中,并

首先,天真的尝试:

booleanProperty1.bindBidirectional(booleanProperty2.not());//类型不匹配
这不管用。我要么将其更改为单向绑定(因此它将接受
BooleanBinding
作为参数),要么删除
.not()


在这里实现我的目标的最佳方式是什么?

为booleanProperty2添加一个侦听器


当其值更改(触发侦听器)时,将booleanProperty设置为booleanProperty2的反面。

最简单的方法是将侦听器同时包含到属性中,并将要在其他属性上设置的值反转

booleanProperty1.addListener((obs,old,val)->booleanProperty2.set(!val));
booleanProperty2.addListener((obs,old,val)->booleanProperty1.set(!val));

为什么两者都有?没有优势。