2016-09-11 43 views
0

我们可以在类本身中创建一个实例引用null吗? 像波纹管:是否有可能在类本身中创建一个实例为null?

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

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

我们可以实现这个methord在C#或Java

+0

我很确定你只能通过在你的类和垃圾收集中将它们设置为null来转储所有的对象。使它为空必须由变量持有者 – ArsenArsen

+0

完成请参阅http://stackoverflow.com/questions/21283346/how-to-set-the-instance-to-null-inside-class和http:// stackoverflow。 com/questions/34562258 /在一个对象之内定义一个对象到它自己的类定义 – Tunaki

回答

2

简短的回答:

较长的答案:

实例无法null可言。键入为类的引用的变量可以设置为null,但不是实例。可以有很多变量引用同一个实例。该实例无法了解这些变量,因此无法将其伸出并将其设置为null

相反,你可以有一个与返回类型的类返回null方法:

public ClassA clear() { 
    return null; 
} 

...这呼叫者可以使用

foo = foo.clear(); 

但它并没有真正主叫方可以轻松地做到这一点

foo = null; 

附注:

在.Net(自从您提到C#)之后,您可能会看到IDisposable接口。

在Java中,您可能会看到AutoCloseable

+0

对不起,我没有清楚地描述它。我修改了这个问题可以实施吗? – Yeezh

+0

@Yizhi:这就是我在谈论上面的答案。不,你不能那样做。 –

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

这是你所期待的,一个对象的引用可以设置为null。

相关问题