2
这里假设是Button
对象,我不能修改,我想一些功能添加到它,使它可拖动例如,所以我创建了一个类Draggable
如下:如何“重视”的对象
每当Button
对象被销毁并且垃圾收集时,附加到它的对象也应该是垃圾收集器自动收集的。那么有没有一种设计模式或者可以帮助我实现这个方法的东西?
这里假设是Button
对象,我不能修改,我想一些功能添加到它,使它可拖动例如,所以我创建了一个类Draggable
如下:如何“重视”的对象
每当Button
对象被销毁并且垃圾收集时,附加到它的对象也应该是垃圾收集器自动收集的。那么有没有一种设计模式或者可以帮助我实现这个方法的东西?
您可能需要基于WeakReferences的内部缓存。
换句话说:您的Draggalbe
只能在没有“硬”活动参考指向它时进行垃圾回收。
换句话说:
Draggabe
你将它放入缓存
null
- 你从缓存中删除条目当然 - 你必须确保否其他“生命”对象保持对Draggable
对象的硬引用。
对你quesiton的答案在这里:https://stackoverflow.com/questions/2506488/when-is-the-finalize-method-called-in-java – Azodious
你有没有考虑继承? – Sweeper
@Sweeper这些对象由其他人提供,因此为这些类型中的每一种创建子类都是不可扩展的。 – JSPDeveloper01