java中Long型数据大小比较问题
创始人
2025-06-01 14:18:02

起因

今天在做项目的时候,想构建一个树形结构,从数据库中查询出了所有数据,进行递归建树,但是有个数据一直失败,十分不解。
在我写方法时,看到是数值比较大小习惯性地用==,没想到一直不显示…

后端方法:
在这里插入图片描述

数据库中的数据:
在这里插入图片描述

前端页面中:
在这里插入图片描述

思考:

很懵很懵,各种调试,各个地方输出都来一遍,还是没发现问题。
又想着是不是我比较大小这里有问题,但是我其他的数据都能显示呀。
突然醒悟了,我的id和parentid不是用的Long嘛,Long有常量池啊,范围是(-128~127) ,并且对引用类型使用==比较的是地址,也就是说在常量池里的对象地址都一样,所以前面的数据才能显示出来,而常量池外的对象都是在堆中新产生的,同一数值的对象地址也不同。

解决:

这也就是我数据出不来的原因了,引用类型别用==比较大小了,使用equals之类的方法
解决方法:

  1. 用.equals()
    在这里插入图片描述

  2. 用longValue()
    在这里插入图片描述

结果:

这下数据不就出来了嘛
在这里插入图片描述

反思:

引用类型比较大小别用==了

202303222105三

相关内容

热门资讯

长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
吸猫伐是什么意思 吸猫是吸哪里 作为铲屎官,相信对于网络上流行的各种与猫咪相关的梗都是了然于心的,什么吸猫啦,撸猫啦,云养猫啦……等...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
重庆属于哪个省份的 重庆在中国... 重庆有多大,大到超出我们的想象,重庆作为我国4个直辖市之一,印象里应该跟京津沪面积差不多,可事实上却...