在类中删除此对象

goo*_*ing 4 java class

private class Node
{
    Item name;
    Node next;

    public void deleteObject()
    {
        this = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以删除类中的对象?我试图在上面做,但它给出了一个错误,左侧应该是一个变量. Node是内在阶级.谢谢.

编辑: var1并且var2引用了这个类的对象,当我var1通过执行删除时var1 = null,我希望它var2也会被删除.

aio*_*obe 9

不,那是不可能的.也没有必要.

只要无法从其中一个根对象访问,该对象就有资格进行垃圾收集(有效地解除分配).基本上自我引用并不重要.

只是确保你永远不会存储对你不再使用的对象的引用,其余的将由垃圾收集器处理.

关于你的编辑:

编辑: var1和var2引用了这个类的对象,当我通过执行var1 = null删除var1时,我希望var2也会被删除.

您不能强制其他对象删除其引用.你必须明确告诉其他对象这样做.例如,如果您正在实现链接列表(如您的示例中所示),我建议您添加prev引用并执行以下操作:

if (prev != null)
    prev.setNext(next);  // make prev discard its reference to me (this).

if (next != null)
    next.setPrev(prev);  // make next discard its reference to me (this).
Run Code Online (Sandbox Code Playgroud)