我的代码中有以下行:-
if (( checker & (1 << val)) ) return false;
其中 checker 是 type int
, val 是 type int
。当我尝试编译相同的内容时,我得到以下信息:-
q11.java:38: incompatible types
found : int
required: boolean
if (( checker & (1 << val)) ) return false;
^
1 error
但是,如果我将代码修改为:-
if (( checker & (1 << val)) > 0 ) return false;
然后我就可以编译源代码了。但是,我无法理解为什么代码最初不起作用。关于为什么会发生这种情况的一些指示?