在类中删除此对象

private class Node { Item name; Node next; public void deleteObject() { this = null; } } 

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

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

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

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

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

关于你的编辑:

编辑: 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). 

不,您无法删除this对象或将其标记为同一类中的垃圾回收。

而且this不是一个变量,你不能在表达式左侧有关键字,所以编译错误。

不可能。 您应该在“NodeManager”之类的东西中收集节点,然后从这个“管理器”中删除节点。

例如,如果您创建节点列表。 您可以从列表中删除该节点。 显然,List将包含第一个节点和一系列方法,并且它们之间有deleteNode。

请参见LinkedList