Java中如何将负数参数对应字段设为0?我的setLemons方法未生效
问题修复方案
你的setLemons方法逻辑完全搞反了:
- 你现在判断的是当前类里的
lemons变量是否小于0,但我们需要校验的是传入的参数newLemons - 而且不管校验结果怎样,最后都直接把
newLemons赋值给lemons,前面的判断等于白写
正确的代码实现
public void setLemons(int newLemons) { if (newLemons < 0) { lemons = 0; } else { lemons = newLemons; } }
嫌代码繁琐的话,也可以用一行代码搞定:
public void setLemons(int newLemons) { lemons = Math.max(newLemons, 0); }
这样调用ls.setLemons(-1)后,lemons会被设置为0,调用getLemons()就能得到预期的结果了。
内容的提问来源于stack exchange,提问作者Jimmy McGill
相关产品推荐
相关产品推荐

