我们可以在类本身中创建一个实例引用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