【发布时间】:2014-03-18 16:37:44
【问题描述】:
有人可以向我解释为什么这不起作用吗?
public class ListenerTest {
public static void addListener(Node node) {
node.visibleProperty().addListener(ListenerTest::handleVisibleChanged);
}
private static void handleVisibleChanged(ObservableValue<? extends Boolean> observable,
Boolean oldValue, Boolean newValue) {
// Do something
}
}
如您所见,我使用 Java 8 方法引用将静态方法分配为 JavaFX 更改侦听器。它编译得很好,但是当可见属性更改时不会调用 handleVisibleChanged() 方法。
请不要提供解决方法或问我为什么要这样做。把它想象成一个练习。 :-)
【问题讨论】:
-
这应该可以按预期工作-您确定属性已更改吗?您能否创建一个完整的示例来重现该问题?
-
@assylias:是的,我很确定该属性已更改。完整的示例可能需要一些时间。
-
那么如果你在你的静态方法中放一个
println,它不会打印任何东西? -
@assylias:不,它没有。该方法肯定不会被执行。此外,不会引发错误。