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

时间:2016-09-11 09:41:50

标签: java c#

我们可以在类本身中创建一个实例引用null吗? 像贝娄:

public class ClassA{
    public void clear(){
        //make this class be null
    }
}

ClassA a = new ClassA();
a.clear();
//now a == null

我们可以在C#或Java

中实现这个方法吗?

2 个答案:

答案 0 :(得分:2)

简答:否。

更长的答案:

实例根本不能是null。键入为类的引用的变量可以设置为null,但不能设置为实例。可以有许多变量引用同一个实例。实例无法知道这些变量,因此没有办法将它们伸出并将它们设置为null

相反,您可以使用返回null的方法返回类的返回类型:

public ClassA clear() {
    return null;
}

......来电者可以使用

foo = foo.clear();

但它并没有真正起到任何作用,呼叫者可以轻松地做到

foo = null;

旁注:

在.Net(因为你提到C#),你可能会看到IDisposable界面。

在Java中,您可以查看AutoCloseable

答案 1 :(得分:0)

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

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