gpt4 book ai didi

java - 在 java 中删除对象之前检查对象是否在某处使用

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:25 25 4
gpt4 key购买 nike

我有一种情况,当有人试图从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com