我有一个classsubject实现多个"observable"接口,我需要删除这个主题。因为在Java中你不会自己删除对象(垃圾收集器为你做),我需要删除对这个对象的所有引用(所以我需要取消订阅所有观察者))创建方法delete将取消订阅所有观察者是正确的吗?或者有更好的方法(我试着谷歌它,但我没有找到任何东西)
换句话说,谁能告诉我垃圾回收器什么时候会删除这个主题?
很难判断一个对象何时会被垃圾回收器删除。对我来说,这取决于你使用的GC。因此,如果一个对象没有引用,它确实有资格进行垃圾收集,但您无法确切地知道它何时会真正发生。
现在,要给出关于可观察模式的答案,您需要创建一个方法deleteObservers
来删除对主题的引用。我不知道你是如何实现这个模式的,Java类Observable
有这个方法,但是从Java 9开始就不赞成了。