请参考以下方法:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
我一直认为三元运算符的第一部分必须是一个条件,但在这里它是一个返回语句而我感到困惑。
答案 0 :(得分:3)
像这样阅读
return (b ? Boolean.TRUE : Boolean.FALSE);
现在更有意义吗?您只是决定要返回什么,具体取决于条件b
的价值。
答案 1 :(得分:1)
相当于:
if(b)
return Boolean.TRUE
else
return Boolean.FALSE
答案 2 :(得分:1)
(布尔值)b
是条件。你能指望什么? 表达不是必需的
答案 3 :(得分:1)
Wikipedia建议以下解释:
在计算机科学中,三元运算符(有时被错误地称为第三运算符)是一个带三个参数的运算符。参数和结果可以是不同的类型。许多使用类似C语法的编程语言都有一个三元运算符?:,它定义了一个条件表达式。
不仅在Java中,这种语法也可以在PHP中使用。
在下面的link中,它给出了以下解释,这对于理解它很安静:
三元运算符是在3个输入上运行的一些操作。它是if-else语句的快捷方式,也称为条件运算符。
在Perl / PHP中,它的工作原理如下:
boolean_condition?true_value:false_value
在C / C ++中,它的作用如下:
logical expression? action for true : action for false
对于某些不太复杂的逻辑条件,这可能是可读的,否则最好将If-Else块与条件逻辑的预期组合一起使用。
我们可以使用此Ternary运算符为一个代码语句行简化If-Else块。例如:
if ( car.isStarted() ) {
car.goForward();
} else {
car.startTheEngine();
}
可能等于以下内容:
( car.isStarted() ) ? car.goForward() : car.startTheEngine();
因此,如果我们参考您的方法:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
实际上是100%相当于以下内容:
public static Boolean valueOf(boolean b) {
if (b == Boolean.TRUE) {
return Boolean.TRUE;
} else {
return Boolean.FALSE;
}
}
那就是它!
希望这对某人有帮助!
干杯!