gpt4 book ai didi

java - 如何重写compareTo方法

转载 作者:行者123 更新时间:2023-12-01 07:15:43 24 4
gpt4 key购买 nike

这是我的compareTo方法,但我仍然收到“缺少返回语句”警告。谁能告诉我我的代码有什么问题吗?

    public int compareTo(Flows other) {
if(this.srcAddr.equals(other.srcAddr)){
if(this.dstAddr.equals(other.dstAddr)){
if(this.srcPort.equals(other.srcPort)){
if(this.dstPort.equals(other.dstPort)){
if(this.protocol.equals(other.protocol)){
return 0;
}
}
}
}
}
}

最佳答案

有两件事:

  • 您得到“缺少返回语句”,因为存在不返回值的执行路径。例如,当第一个 if 语句计算结果为 false 时。

  • 您违反了compareTo() 契约(Contract)。对于以下调用:a.compareTo(b),结果应该为:如果 a 等于 b,则结果应为 0;如果 a 小于 b,则结果为 <0;如果 a 大于 b,则结果 >0。看来您正在使用compareTo()来检查是否相等,在这种情况下,正确的方法是重写equals()方法。

关于java - 如何重写compareTo方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3475546/

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