Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Java 中Long与long引起的bug

Java 中Long与long引起的bug,代码中一个隐藏了很长时间有BUG今天找到了。问题出在了Long比较是否相等引起的,示例如下:
  1. Long md=123456L;  
  2. LinkedList<Long> list=new LinkedList<Long>();  
  3. list.add(123456L);  
  4. ListIterator<Long> it=list.listIterator();  
  5. while(it.hasNext())  
  6. {  
  7. if(it.next()==md)  
  8. //  
  9. else  
  10. //  
  11. }  
我的本意是判断md是否在list中,如上所示,md=123456,在list中,但用上面的代码得到的结果是不在。 个人分析是因为对于Long类,使用==来比较会出问题,因为只有是同一个对象时,等号才会成立。解决方法为将md声明为long,这样it.next()与md比较时,Long会转换为long。