我正在尝试为我的应用程序实现一个拦截器,它能够跟踪它看到的对象.我需要能够分辨出我现在看到的对象是新的还是重用的.
假设我有这样一个界面:
public interface Interceptor {
void process(Object o);
}
Run Code Online (Sandbox Code Playgroud)
我一直在考虑添加一个可以跟踪这些对象的Set.但是既然我不想因这种行为导致内存泄漏,或许我应该设计一些其他模式?最后,这些对象可能会在其他层中被破坏.
可能的解决方案:
第一个选项似乎不是100%可靠,因为hashCode可能不是唯一的.至于第二个选项,我不确定这会阻止memleaks.
还有一点需要注意,我无法修改对象,我无法添加字段,方法.包装也不是一种选择.
有任何想法吗?