项目场景:
在做一个后台管理项目时,需要对 id 进行校验,这里的 id 都是 Long 型数据,在比较时我用的是 ==,结果很神奇,明明一样的值结果却是 false
问题描述
得不到正确的结果
for (AddressBook aB: list) { if (aB.getId() == addressBook.getId()) aB.setIsDefault(1); else aB.setIsDefault(0); addressBookService.updateById(aB); }
原因分析:
这里想知道原因的可自行查看这位博主的分析:
解决方案:
1.使用 Long 的 longValue()方法进行两个数据的比较
Long a = 128l; Long b = 128l; a.longValue() == b.longValue(); //true
2.使用equal()放法进行比较
Long a = 128l; Long b = 128l; a.equals(b); //true