我的代码中有if
语句如下:
if (key != a[0]) /* line to be executed */
当我使用key = 1
(类型为Integer)和a[0] = 1
(类型为Integer)运行程序时,我得到true
并且语句运行,即1不等于1.显然这太荒谬了。
我已经对此进行了大量测试,但我找不到key
的值,它会为false
提供key != a[0]
。出于我的计划的目的,a[0]
无法更改。
出了什么问题?
答案 0 :(得分:2)
.equals()
方法检查是否相等,==
运算符检查对象的相同性。只要key和[0]不同Object
,==
将返回false。 <{1}}上的.equals()
将返回true。