是否可以使类本身中的实例为null

本文关键字:实例 null 可以使 是否 | 更新日期: 2023-09-27 18:06:42

我们可以在类本身中使实例引用为null吗?如下所示:

public class ClassA{
    public void clear(){
        //make this class be null
    }
}
ClassA a = new ClassA();
a.clear();
//now a == null

我们能在C#或Java 中实现这种方法吗

是否可以使类本身中的实例为null

简短回答:否

更长的答案:

实例根本不能是null。类型化为类引用的变量可以设置为null,但不能设置为实例。可以有许多变量引用同一个实例。该实例无法了解这些变量,因此无法联系并将它们设置为null

相反,您可以有一个返回null的方法,该方法具有类的返回类型:

public ClassA clear() {
    return null;
}

呼叫者可以使用

foo = foo.clear();

但它并没有真正起到任何作用,来电者可以很容易地进行

foo = null;

旁注:

在.Net中(因为您提到了C#(,您可能会看到IDisposable接口。

在Java中,您可能会看到AutoCloseable

public class ClassA
{
  private ClassA obj = new ClassA();
  public void clear(){
        obj = null;
    }
}

这就是您所期望的吗?对象的引用可以设置为null。