我想从对象本身内部杀死/删除一个对象。
我需要的是,对此对象的引用为空,但我不想将句柄传递给容器。这是一个小代码示例:
class Obj {
void run(){
if(true)
kill();
}
}
class A{
Obj o;
void main(){
o.run();
}
}
运行o.run()
后,我想o == null
。这可能吗?
最佳答案
您不能按照您的意愿从对象本身内部删除对对象的引用。从您在范围内实际拥有要取消的引用的位置开始,您可以执行以下操作。
一旦 run()
完成,将引用清空:
编辑根据反馈...
class Obj {
private boolean killMe = false;
void run(){
if(someConditionHere) {
killMe = true;
}
}
public boolean isKillable() { return killMe; }
}
class A{
Obj o;
void main(){
o.run();
if(o.isKillable()) {
o = null;
}
}
}
关于java - 有没有办法使用 Java 从对象本身内部销毁对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748412/