这是由一个令人沮丧的错误引起的,在该错误中,使用Long
而不是==
比较两个对象的.equals(...)
属性。两个长值是相同的128L。由于某些原因,即使值匹配,引用也不匹配,因此Long.valueOf(128L).equals(new Long(128L))
返回true
,而Long.valueOf(128L) == Long.valueOf(128L)
返回false
。为什么会这样?
编辑:
在过去,列表最多只能显示127个值时,此错误没有引起注意。我们一有128个,问题就浮出水面了