问题:
明明两个值相等,但是比较时确得到 false
代码:
- if(model.getYxsh()==temp.getYxsh()){
-
```
-
}
原因:
java中,若采用 == 比较两个封装之后的值,java有两套比较手法:在值为-128~127间是比较两个数的值;而对于值超过了这两个临界值的数,java采用比较地址的方法判断两个值是否相等。所以上面的代码就会产生问题,而且也隐含严重的问题
解决方法:
采用 equals 比较两个值是否相等
- model.getYxsh().equals(temp.getYxsh())
而且对于复杂数据结构的值,都应尽量采用上述方法比较两个值是否相等,没有别的方法时才用 == 比较
阅读(755) | 评论(0) | 转发(0) |