我有下面的代码片段:的Java布尔空铸
Boolean var=false;
boolean var1=(var=null);
if(var1){
//it compiles
}
if(var=null){
//it compiles
}
为什么它编译?
在Boolean
类,我发现以下几点:
public static boolean parseBoolean(String s) {
return ((s != null) && s.equalsIgnoreCase("true"));
}
这是否意味着被null
视为false
?为什么=
运行的结果是boolean
是false
?这种行为的实际原因是什么?
你为什么不启动你的程序,看看会发生什么? Btw:'if(null = var)'不会编译... – Tom
'if(null = var)'永不编译。 –
P.S:Var1可能是真的。 =将会比较一个值==。在“boolean var1 =(var = null);” parentesis只是一个声明。并在“if(null = var){”它不应该编译。您无法将值设为空 – borjab