Math.abs(Integer) 不工作,无法将 Integer 转换为 int

Math.abs(Integer) not working, can't convert Integer to int

我正在实现一个基于绝对值排序的比较器。我(认为)我需要的只是这一行代码:

public int compare(Integer int1, Integer int2) {
    return Math.abs(int1).compareTo(Math.abs(int2));
}

错误:'no suitable method found for abs(Integer)'

我认为 Java 将 Integer 对象拆箱为 int?

我尝试使用 .intValue() 从两个 Integer 对象中提取 int 值,但这也不起作用。我做错了什么?

Math#abs(int) 如果将其作为参数传递,确实会将 Integer 拆箱为 int,但随后它将 return 结果为 int,这是原始的类型,因此它没有 any 方法,因此您不能将 .compareTo 链接到它。

您可能正在寻找类似

的内容
Integer.compare(Math.abs(int1), int2);

或(取决于您问题的版本)

Integer.compare(Math.abs(int1), Math.abs(int2));