Ответ 1
Сначала ваш код не скомпилирован. Линия Длинные b = 1113;
неверно. Вы должны сказать
Long b = 1113L;
Во-вторых, когда я исправил эту проблему компиляции, код, напечатанный "не равно".
long a = 1111;
Long b = 1113;
if(a == b)
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
приведенный выше код печатает "equals" в консоли, что является неправильным ответом. мои вопросы - как сравнить длинное значение переменной, равное значению Long variable. пожалуйста, переиграйте меня как можно скорее.
С уважением, вы
Сначала ваш код не скомпилирован. Линия Длинные b = 1113;
неверно. Вы должны сказать
Long b = 1113L;
Во-вторых, когда я исправил эту проблему компиляции, код, напечатанный "не равно".
Он работает как ожидалось,
Попробуйте проверить IdeOneDemo
public static void main(String[] args) {
long a = 1111;
Long b = 1113l;
if (a == b) {
System.out.println("Equals");
} else {
System.out.println("not equals");
}
}
печатает
not equals
для меня
Использовать compareTo()
для сравнения Long, ==
wil не работать во всех случаях, поскольку значение кэшируется
long a = 1111;
Long b = new Long(1113);
System.out.println(b.equals(a) ? "equal" : "different");
System.out.println((long) b == a ? "equal" : "different");
С одной стороны, Long - это объект, а с другой стороны - примитивный тип. Чтобы сравнить их, вы можете получить примитивный тип из длинного типа:
public static void main(String[] args) {
long a = 1111;
Long b = 1113;
if ((b!=null)&&
(a == b.longValue()))
{
System.out.println("Equals");
}
else
{
System.out.println("not equals");
}
}
Я расскажу, как это сделать, поскольку Java 7 -
Long first = 12345L, second = 123L;
System.out.println(first.equals(second));
вывод возвращается: false
и второй пример совпадения -
Long first = 12345L, second = 12345L;
System.out.println(first.equals(second));
Возвращаемое значение : true
Итак, я верю в метод equals для сравнения значения Object, надеюсь, вам это поможет, спасибо.
Начиная с Java 7 вы можете использовать java.util.Objects.equals(Object a, Object b):
Эти утилиты включают нулевые или нулеустойчивые методы.
Long id1 = null;
Long id2 = 0l;
Objects.equals(id1, id2));
public static void main(String[] args) {
long a = 1111;
Long b = 1113L;
if(a == b.longValue())
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
}
or:
public static void main(String[] args) {
long a = 1111;
Long b = 1113L;
if(a == b)
{
System.out.println("Equals");
}else{
System.out.println("not equals");
}
}