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

Java 带有number1==number2(Long类型)的条件永远不会为真?,java,android,Java,Android,此代码应该列出最近跳过的相同号码的最近呼叫,但这些号码正在显示,请帮助 //code Long number0=(long) 0; // loop through cursor while(mCallCursor.moveToNext()){ Long number1 = mCallCursor.getLong(0); if(number1

此代码应该列出最近跳过的相同号码的最近呼叫,但这些号码正在显示,请帮助

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

          }
而不是

if(number1==number0)
使用


两个
Long
值可以满足
equals
而不是
=
它不起作用的主要原因是Long是对象,并且==运算符在测试两个对象的相等性时起作用,而不是这些对象中存储的长值。另一方面,long不是对象,而是基本体

if((long)number2 == (long)number1)
这也行

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