我应该担心在Swing中泄漏“this”指针吗?
我最近了解到(在基于C#的类中),在对象的构造函数中注册事件侦听器有时被认为是危险的,因为这些事件侦听器在对象完全初始化之前被赋予对该对象的引用,并且可以(至少在理论上)在构造完成之前尝试访问该对象。
据我所知,在构造完成之前访问对象可能会导致崩溃,至少在某些语言中是这样......如果它不会导致崩溃,那么我们只会关心注册最后发生,所以我们的对象在注册其侦听器时准备好接收事件。
我现在开始使用新的 Swing GUI,并注意到我在构建 Swing GUI 时的标准做法是在构造函数中连接事件侦听器。
在构造函数完成之前调用 Swing 组件的事件侦听器似乎不太可能,因为它们在将组件添加到可见的 Swing 容器之前可能不会连接起来,这只能在构造之后发生。
那么,在Swing工作时,有没有真正的理由避免这种反模式呢?如果是这样,最简单的方法是什么?