歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java 中Long與long引起的bug

Java 中Long與long引起的bug

日期:2017/3/1 10:20:16   编辑:Linux編程

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。

Copyright © Linux教程網 All Rights Reserved