在java中比较两个原始的长变量

2022-09-05 00:20:14

标题非常不言自明。我正在从C#迁移到Java。我有一个对象和一个返回其ID的getter方法。我想比较两个相同类型的对象的id,并检查它们的id的值是否相等。

试:

obj.getId() == obj1.getId();

Long id1 = obj.getId();
Long id2 = obj1.getId();

assertTrue(id1.equals(id2))

assertTrue(id1== id2)

答案 1

在java中:

  • 运算符会告诉您两个操作数是否为同一对象(实例)。==
  • 的方法告诉您它们是否相等。.equals()Long

但你也不应该这样做。正确的方法是:

assertEquals(id1, id2);

如果断言失败,错误消息将告诉您两个值是什么,例如assertEquals()expected 2, but was 5


答案 2

要比较两个原始长,你可以简单地使用==

例:

long x = 1L;
long y = 1L;

if (x == y) {
 System.out.println("value of x and y are same");
}

要比较两个 Long 对象,可以使用 Long.compare(long x, long y)。此方法是在 java 1.7 中添加的。以下是方法实现:

public static int compare(long x, long y) {
        return (x < y) ? -1 : ((x == y) ? 0 : 1);
}

例:

Long x = new Long(1);
Long y = new Long(1);
if (Long.compare(x,y) == 0) {
  System.out.println(values of x and y are same);
}