有用的信息:
集成开发环境:IntelliJ JDK: 8u271
我有一个我不明白也不知道如何解决的警告。 警告:
Comparator does not return 0 for equal elements
警告亮点
(a, b)
在这行代码中。
private final Comparator<Entity> renderSorter = (a, b) -> {
if (a.getY() + a.getHeight() < b.getY() + b.getHeight())
return -1;
return 1;
};
警告的含义是什么,我该如何解决?
最佳答案
您必须添加一个案例来检查两个值是否相等,比较器应该返回 0。现在它将返回 -1
或 1
。
private final Comparator<Entity> renderSorter = (a, b) -> {
return Integer.compare(a.getY() + a.getHeight(), b.getY() + b.getHeight());
};
这将为您解决问题。将比较的责任委托(delegate)给 Integer 类比较方法。
关于java - 解决比较器不为相等的元素返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65375569/