有条件的number1 == number2(类型为Long)永远不会是真的吗?

时间:2012-01-02 04:26:03

标签: java android

此代码应该列出最近调用的最近相同的nos,但它们正在显示,请帮助

             //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);

          }

2 个答案:

答案 0 :(得分:5)

而不是

if(number1==number0)

使用

if(number1.equals(number0))

两个Long值可以满足equals而不是==

答案 1 :(得分:0)

它不起作用的主要原因是Long的对象和==运算符的工作原理是它测试两个对象的等同性而不是存储在这些对象中的长值。另一方面,long不是一个对象而是一个原始的。

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

也应该有效。