Я хочу сравнить два значения Long с использованием условий if
. Когда эти значения меньше 128, условие if
работает правильно, но когда они больше или равно 128, сравнение не выполняется.
Пример:
Long num1 = 127;
Long num2 = 127;
if (num1 == num2) {
// Works ok
}
Сравнение приведенного выше кода работает правильно, но в коде ниже не работает:
Long num1 = 128;
Long num2 = 128;
if (num1 == num2) {
// Does NOT work
}
Почему возникает проблема сравнения переменных Long со значениями больше 127? Если переменные типы данных изменяются на длинные примитивы, то сравнения выполняются для всех случаев.