当我在两个不同的绑定中具有属性作为依赖关系时;属性是更改 - 首先调用/重新计算什么绑定?
我做了一次练习:
y.bind(a.or(b));
x.bind(a.or(c));
x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("x has changed");
});
y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("y has changed");
});
当我更改 a 时,第一个绑定,其中 a 被添加为依赖关系被调用(y)。那么,只是附加物的顺序还是还有什么需要知道的?调用顺序是:y-listener,x-listener
编辑:
当我为 a 添加监听器时:
a.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("a has changed");
});
y.bind(a.or(b));
x.bind(a.or(c));
x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("x has changed");
});
y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("y has changed");
});
但是我添加了一个额外的监听器 a bevor绑定了,仍然是这样的呼叫顺序,但为什么?: y-listener,x-listener,a-listener。
提前谢谢