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));
我正在实现一个基于绝对值排序的比较器。我(认为)我需要的只是这一行代码:
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));