我想知道是否有一种方法可以将布尔值转换为整数,而不使用if语句(以避免破坏流水线)。例如,我可以这样写:
int boolToInt( boolean b ){
if ( b )
return 1
return 0
但我在想是否有一种方法可以不使用if语句来完成,就像Python的
bool = True
num = 1 * ( bool )
我想你也能做到。
boolean bool = True;
int myint = Boolean.valueOf( bool ).compareTo( false );
不过,这会创建一个额外的对象,所以非常浪费资源,并且我发现它甚至比 if 语句的方式更慢(虽然 if 语句并不一定低效,只是有一个弱点)。
return (Boolean.valueOf(b).hashCode() >> 1) & 1;
Boolean.valueOf 的返回值总是类常量之一,因此没有对象创建开销,但仍涉及两个(隐藏的)if。 - Boann