public void printManagerAvailable(Manager mgr) {
System.out.println(" Is Manager object available : " + mgr!=null);
}
输出:
true
为什么输出只有true
?我期待着:
Is Manager object available : true
答案 0 :(得分:5)
因为它认为您" Is Manager object available : " + mgr
在!= null
的左侧。换句话说,它首先" Is Manager object available : " + mgr
然后比较" Is Manager object available : [Object:Manager]" != null
。
这样做。
Manager mgr = new Manager();
mgr.setChangeClass(5);
mgr.setChangeClockIn(10);
System.out.println(" Is Manager object available : " + (mgr!=null));
答案 1 :(得分:1)
其他答案涵盖了正在发生的事情,这就是它发生的原因:
Java中operator precedence的顺序将加法+
置于相等之前,!=
。
重要的是要意识到这不是由于从左到右的顺序造成的。
所以你所拥有的是按顺序应用运算符:
("Is null : " + mgr) != null
要解决此问题,您可以使用括号以其他方式强制优先级:
"Is null : " + (mgr != null)
答案 2 :(得分:-1)
尝试使用这行代码。
var a = Math.round((Math.random() * 90) + 1);
var b = Math.round((Math.random() * 90) + 1);
var c = 180 - a - b;