2016-09-11 42 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。

相關問題