Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601188
  • 博文数量: 96
  • 博客积分: 1464
  • 博客等级: 上尉
  • 技术积分: 1539
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-12 23:24
文章分类

全部博文(96)

文章存档

2013年(29)

2012年(53)

2011年(14)

分类: Java

2012-03-01 20:22:32

问题:
明明两个值相等,但是比较时确得到 false


代码:
  1. if(model.getYxsh()==temp.getYxsh()){
  2. ```
  3. }

原因:
java中,若采用 == 比较两个封装之后的值,java有两套比较手法:在值为-128~127间是比较两个数的值;而对于值超过了这两个临界值的数,java采用比较地址的方法判断两个值是否相等。所以上面的代码就会产生问题,而且也隐含严重的问题

解决方法:
采用 equals 比较两个值是否相等
  1. model.getYxsh().equals(temp.getYxsh())
而且对于复杂数据结构的值,都应尽量采用上述方法比较两个值是否相等,没有别的方法时才用 == 比较






阅读(731) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~