在学习OCA/OCP for Java的过程中,我发现了这个令人惊讶的事情。如果条件在圆括号内的赋值情况下评估真或假,
下面是第一段代码,其中if(测试条件)部分 令我惊讶。
public class BooleanIf {
public static void main(String[] args) {
boolean b = false;
System.out.println(Boolean.valueOf(b = true));
if (b = true)
System.out.println("true");
else
System.out.println("false");
}
现在这个出人意料的结果是“真实的”。
我知道必须有一个关系条件,如同if (a > b)
或if (a != b)
一样返回true或false。
我想知道它是如何返回true为这种情况。它是否调用Boolean.valueOf()?
如果你真的在为OCPJP学习,你应该知道这一点!如果没有,请先完成OCAJP! – NoRelect
这个问题怎么来得到10k +用户的回答?为reall ??,我以为它只是像我这样的低代表妓女,追逐这些..嗯 – Elltz
@NoRelect对不起,我的意思是oca和ocp都。 –