Возможно, вы используете IBM JVM. Некоторое время назад я заметил ошибку, при которой, если вы сравниваете int с long с тем же значением, используя ==
, он автоматически ставит и возвращает false
.
Например, используя этот метод:
public boolean amIEqual(int myInt, long myLong){
return myInt == myLong;
}
amIEqual(3,3)
было false
на IBM JVM, которую я использовал.
Чтобы исправить это, я явно использовал тип объекта:
public boolean amIEqual(Integer myInt, Long myLong){
return myInt.equals(myLong);
}
Теперь amIEqual(3,3)
внезапно стал true
.