当前位置: 代码迷 >> J2SE >> 算是基础知识吧,请看题解决方法
  详细解决方案

算是基础知识吧,请看题解决方法

热度:10   发布时间:2016-04-24 00:41:02.0
算是基础知识吧,请看题
Java code
if(hj.getSalhj002() != memType){    money += hj.getSalhj003();    //①}else{    memMoney += hj.getSalhj003();    //②  }

很简单的一个if else语句,hj.getSalhj002()和memType均为Long值,代码运行到这里两个Long值均为33,我在debug下看hj.getSalhj002() != memType的返回值为false,但是执行的却是①,这时为什么?应该是② 呀;

将Long值后面加上.longvalue后,hj.getSalhj002() != memType的返回值为false,但是执行的是②。

求解

------解决方案--------------------
Long是个对象,两个对象比较的是地址,地址是不一样的。
.longValue()后都变成了long基本类型,这时比较的才是数值大小
  相关解决方案