我有一种情况,当有人试图从 b
中删除对象 bList
并且它在其他一些类中使用时,我需要给出错误消息,比如类 A
。
如果 b
没有在另一个类中引用,那么我不应该抛出错误消息。
上述场景的伪代码
public class A {
B b;
void setB(B b) {
this.b = b;
}
}
public class NotifyTest {
List<B> bList = new ArrayList<>();
String notifyTest() {
A a = new A();
B b = new B();
a.setB(b);
bList.add(b);
if (b referencedSomewhere)
{
return "error";
}
else
{
bList.remove(b);
return "success";
}
}
}
遍历我的整个模型以检查对象
b
是否在某处使用会影响性能,所以我不想采用这种方法。请让我知道 Java 是否提供了针对此场景的任何解决方案,或者建议更好的方法来处理此问题。
Edit1:当在 bList 以外的任何其他地方引用
b
时,我需要一条错误消息 最佳答案
如果您的目的是从列表中自动释放不再引用的项目,您可以使用 https://docs.oracle.com/javase/7/docs/api/java/util/WeakHashMap.html
您还可以使用它来跟踪尚未垃圾收集的所有键。这可以为您提供有关哪些项目已经被垃圾回收的信息(在变得无法访问之后)。但是,信息不会是实时的,因为垃圾收集器可能会在任意时间运行。