之间是否存在明显差异
boolean foo= bar>1;
和
boolean foo = bar>1? true:false;
我注意到在第一个例子中,立即评估条件,看起来像这样。
int bar=3;
boolean foo= bar>1;
bar =0;
if(foo){
System.out.println("Foobar");
}
会打印Foobar
,而如果条件是在if
语句中,则根本不打印。到目前为止,这与使用三元运算符或if/else
答案 0 :(得分:3)
三元 高度 多余。鉴于不等式将返回布尔结果,您无需对其执行任何类型的三元运算。
答案 1 :(得分:1)
我想添加一件事,两个代码都会生成相同的字节码。为了证明您可以使用 Java类文件反汇编程序(javap
)
使用该命令反汇编class
个文件javap -c com.package.MyClass
,您会发现两个代码 JVM 将生成相同的字节码。因此,对于这两个陈述中的任何一个都有 No 的利益或损害。但绝对三元在这里是redaundant