假设您对是否已为变量 明确赋值 感兴趣,答案是“不是真的”。但绝对的字段(实例变量或类变量)尚未明确分配之间没有差异 可言
呢,并且已经把它的缺省值为一个- 0,假,空等等。
现在, 如果 您知道一旦分配了该值,就永远不会将其重新分配为null值,则可以使用:
if (box != null) { box.removeFromCanvas();}
(这也避免了可能的情况
NullPointerException),但是您需要知道“具有null值的字段”与“尚未明确分配值的字段”不同。Null是一个完全有效的变量值(当然,对于非原始变量)。实际上,您甚至可能希望将以上代码更改为:
if (box != null) { box.removeFromCanvas(); // Forget about the box - we don't want to try to remove it again box = null;}
局部变量也可见差异,在“确定分配”之前不能读取它们-但是可以明确分配的值之一为null(对于引用类型变量):
// Won't compileString x;System.out.println(x);// Will compile, prints nullString y = null;System.out.println(y);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)