踩坑两次了
项目中有个根据index判断是否相等的问题, debug竟然发现141 == 141的结果是false。 研究后发现是Long类型的问题。
Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。
如果值在[-128, 127]之间,会放在缓存里面,而超过这个范围就要new一个新的对象,也就是说==不能判断对象是否相等。当然,如果值是在[-128, 127]之间的话是测不出来什么问题的。
Long类型要用 .longValue() 或者 .equals() 进行比较