我有一种情况,当有人试图从 bList
中删除对象 b
并且它在其他一些类中使用时,我需要给出错误消息 class 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:当 b
在 bList 以外的任何其他地方引用时,我需要一条错误消息
最佳答案
如果您在这里的目的是自动释放列表中不再引用的项目,您可以使用 https://docs.oracle.com/javase/7/docs/api/java/util/WeakHashMap.html
您还可以使用它来跟踪所有尚未被垃圾回收的键。这可以为您提供有关哪些项目已经被垃圾收集的信息(在变得无法访问之后)。但是,信息不会是实时的,因为垃圾收集器可能会在任意时间运行。
关于java - 在 java 中删除对象之前检查对象是否在某处使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39565886/