我們可以在類本身中創建一個實例引用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
我們可以在類本身中創建一個實例引用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
簡短的回答:號
較長的答案:
實例無法null
可言。鍵入爲類的引用的變量可以設置爲null
,但不是實例。可以有很多變量引用同一個實例。該實例無法瞭解這些變量,因此無法將其伸出並將其設置爲null
。
相反,你可以有一個與返回類型的類返回null
方法:
public ClassA clear() {
return null;
}
...這呼叫者可以使用
foo = foo.clear();
但它並沒有真正主叫方可以輕鬆地做到這一點
foo = null;
附註:
在.Net(自從您提到C#)之後,您可能會看到IDisposable
接口。
在Java中,您可能會看到AutoCloseable
。
對不起,我沒有清楚地描述它。我修改了這個問題可以實施嗎? – Yeezh
@Yizhi:這就是我在談論上面的答案。不,你不能那樣做。 –
public class ClassA
{
private ClassA obj = new ClassA();
public void clear(){
obj = null;
}
}
這是你所期待的,一個對象的引用可以設置爲null。
我很確定你只能通過在你的類和垃圾收集中將它們設置爲null來轉儲所有的對象。使它爲空必須由變量持有者 – ArsenArsen
完成請參閱http://stackoverflow.com/questions/21283346/how-to-set-the-instance-to-null-inside-class和http:// stackoverflow。 com/questions/34562258 /在一個對象之內定義一個對象到它自己的類定義 – Tunaki