2012-01-02 60 views
2

這個代碼應該列出最近呼叫最近同號跳過,但它們被顯示出來,請大家幫忙有條件的number1 == number2(Long類型)永遠不會是真的嗎?

   //code 
       Long number0=(long) 0; 
      // loop through cursor 
      while(mCallCursor.moveToNext()){ 
       Long number1 = mCallCursor.getLong(0); 
       if(number1==number0) 
        continue; 
       else 
        number0=number1; 
       if(mCallCursor.getString(2)!=null){ 
        String name = mCallCursor.getString(2); 
        System.out.println(name); 
       } 
       else 
        System.out.println(number1); 

      } 

回答

5

而不是

if(number1==number0) 

使用

if(number1.equals(number0)) 

兩個Long值可以滿足equals而不是==

0

它不工作的主要原因是Long的對象和==操作符工作,因爲它測試的是兩個對象的平等性,而不是這些對象中存儲的長整型值。另一方面,長不是一個物體,而是一個原始物體。

if((long)number2 == (long)number1) 

也可以。

相關問題