gpt4 book ai didi

java - org.apache.commons.lang.builder.CompareToBuilder 究竟做了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:31 25 4
gpt4 key购买 nike

我了解了 Comparable 接口(interface),为此类必须实现 compareTo 方法。我正在使用该方法的一个项目:

public class EmployeeAssignmentTotal implements Comparable<EmployeeAssignmentTotal>, Serializable {

private Employee employee;
private int total;
....
public int compareTo(EmployeeAssignmentTotal other) {
return new CompareToBuilder()
.append(employee, other.employee)
.append(total, other.total)
.toComparison();
}

CompareToBuilder 在这里具体做了什么?它如何与 employeetotal 属性交互?


我读过 the javadocs ,但我无法弄清他们对构造函数和多个 append 所做的事情。这个问题是否表明意图不明和零研究?

最佳答案

我试图弄清楚 CompareToBuilder 是如何工作的,我看到了这篇文章,但我对答案并不满意。例如,toComparison 方法应返回一个负整数、一个正整数或零,因为构建器已将“左侧”判断为小于、大于或等于“右侧”。

所以我的问题是附加属性的顺序如何影响比较。为了回答这个问题,我唯一能做的就是检查源代码,我发现了这个:

public CompareToBuilder append(int lhs, int rhs) {
if (this.comparison != 0) {
return this;
}
this.comparison = ((lhs > rhs) ? 1 : (lhs < rhs) ? -1 : 0);
return this;
}

所以,基本上发生的事情是它会根据您添加它们的顺序比较属性。在您的代码示例中,将首先评估“员工”。如果左侧属性的计算结果小于或大于右侧,则忽略总数。

仅当“employee”的计算结果等于时,才会计算属性“total”。

关于java - org.apache.commons.lang.builder.CompareToBuilder 究竟做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9161370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com