Binding 我可以在JavaFX中创建弱绑定吗?

Binding 我可以在JavaFX中创建弱绑定吗?,binding,javafx,weak-references,Binding,Javafx,Weak References,我有两个绑定的StringProperty对象。我希望绑定是弱的,这样一旦其中一个绑定对象被GCed,它就可以进行垃圾收集 请参见此示例: StringProperty obj1 = new StringProperty("Object1"); StringProperty obj2 = new StringProperty("Object2"); obj2.bind(obj1); obj2 = null; 如何创建弱引用,以便收集第3行中创建的Bindung?如果您通过property1.

我有两个绑定的
StringProperty
对象。我希望
绑定
是弱的,这样一旦其中一个绑定对象被GCed,它就可以进行垃圾收集

请参见此示例:

StringProperty obj1 = new StringProperty("Object1");
StringProperty obj2 = new StringProperty("Object2"); 
obj2.bind(obj1);
obj2 = null;

如何创建弱引用,以便收集第3行中创建的
Bindung

如果您通过
property1.bindBidirectional(property2)
使用双向绑定,或者在您的情况下使用
obj2.bindBidirectional(obj1)
此绑定将使用
com.sun.javafx.binding.BidirectionalBinding
创建,该绑定使用
WeakReference
实现


如果这是您正在搜索的内容,它将按预期工作。如果你“只”对单向绑定感兴趣,你可以继续阅读前面提到的类的源代码,复制它的绑定实现,并根据你的需要进行调整。

虽然我是一个很晚的anwser,但我在:

注意,JavaFX通过弱侦听器实现了所有绑定调用。这意味着绑定属性可以被垃圾收集并停止更新


因此,默认情况下,绑定应该保持弱引用。

为什么不创建自定义字符串绑定呢。然后,当绑定被激活时,您可以自己处理空案例