Java 在下列情况下是否可能发生短路评估
Java会想,既然Java 在下列情况下是否可能发生短路评估,java,Java,Java会想,既然状态已经为false,它就不会执行fun方法吗?我测试过,在这两种情况下,fun将被执行。但是,它是跨Java规范的保证吗?double&用于短路操作。使用 public class JavaApplication11 { static boolean fun() { System.out.println("fun"); return true; } /** * @param args the command
状态
已经为false,它就不会执行fun
方法吗?我测试过,在这两种情况下,fun
将被执行。但是,它是跨Java规范的保证吗?double&
用于短路操作。使用
public class JavaApplication11 {
static boolean fun() {
System.out.println("fun");
return true;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
boolean status = false;
status = status & fun();
status = fun() & status;
}
}
此处不会发生短路评估,因为您使用的是位and运算(
&
)而不是逻辑and运算(&&
)。保证&&
运算符短路。和
操作员保证不会
status = status && fun();