java - 有没有办法使用 Java 从对象本身内部销毁对象?

标签 java

我想从对象本身内部杀死/删除一个对象。

我需要的是,对此对象的引用为空,但我不想将句柄传递给容器。这是一个小代码示例:

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/

相关文章:

java - 更改java中不同类的标签文本

非原始数简单算术的 Java 注解

java - 启动应用程序时设置 JFrame 的最大大小

Javadocs 链接到外部 javadoc

java - Kafka 管理消费者组之间的偏移量

java - 使用私有(private)访问说明符访问具有参数的私有(private)方法

java - 无法解析符号 "postDelayed"

java - 'java.util.concurrent.ExecutionException : org. apache.catalina.LifecycleException:'

java - JAXB 解码错误后文件被阻止的文件

java - 无法使用共享首选项设置按钮的可见性