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

Java 是否可以使类本身中的实例为null?,java,c#,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中实现这种方法吗?简短回答:不可以 详细回答: 实例不能为null。类型化为类引用的变量可以设置为null,但不能设置为实例。可以有

我们可以在类本身中将实例引用设为null吗? 像下面这样:

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

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

我们可以在C#或Java中实现这种方法吗?简短回答:不可以

详细回答:

实例不能为
null
。类型化为类引用的变量可以设置为
null
,但不能设置为实例。可以有许多变量引用同一实例。实例无法了解这些变量,因此无法将它们设置为
null

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

public ClassA clear() {
    return null;
}
…呼叫方可以使用

foo = foo.clear();
但这并没有真正起到任何作用,打电话的人也可以轻松做到

foo = null;

旁注:

在.Net中(因为您提到了C#),您可以查看接口


在Java中,您可以查看。

简短回答:否。

详细回答:

实例不能为
null
。类型化为类引用的变量可以设置为
null
,但不能设置为实例。可以有许多变量引用同一实例。实例无法了解这些变量,因此无法将它们设置为
null

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

public ClassA clear() {
    return null;
}
…呼叫方可以使用

foo = foo.clear();
但这并没有真正起到任何作用,打电话的人也可以轻松做到

foo = null;

旁注:

在.Net中(因为您提到了C#),您可以查看接口

在Java中,您可以查看

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


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

我很确定,只有在类中将它们设置为null并进行垃圾收集,才能转储所有对象。使其为null也必须由变量holderSee来完成,我非常确定,只有在类中将所有对象设置为null并进行垃圾收集,才能转储它们。将其设为null必须由变量holderSee完成,很抱歉,我没有清楚地描述它。我修改了这个问题。这能实现吗?@Yizhi:这就是我上面所说的答案。不,你不能那样做。对不起,我没有描述清楚。我修改了这个问题。这能实现吗?@Yizhi:这就是我上面所说的答案。不,你不能那样做。