gpt4 book ai didi

java - 在 Java 中实现比较

转载 作者:行者123 更新时间:2023-12-02 05:16:00 25 4
gpt4 key购买 nike

所以我尝试使用 Comparable 来比较两个形状的面积。我在我的类中实现了它,并且我现在尝试在我的 LineSegment 类中重写比较,该类扩展了我自己的抽象类 Shape。

class LineSegment extends Shape implements Comparable{

public int compareTo(Object object1, Object object2)
{
LineSegment ls1 = (LineSegment) object1;
LineSegment ls2 = this;
return Double.compare(ls1.getArea(), ls2.getArea());
}



}

在比较两个 double 时遇到问题之前,我通过 return 语句和 Double 看到了问题的解决方案。 getArea() 返回 LineSegment 的双倍区域。所以我遇到了这个错误,任何帮助将不胜感激,谢谢-LineSegment is not abstract and does not override abstract method compareTo(java.lang.Object) in java.lang.Comparable
class LineSegment extends Shape implements Comparable

最佳答案

您需要使用Comparator接口(interface)而不是Comparable。所以你的类定义将更改为:

class LineSegment extends Shape implements Comparator <LineSegment> {
....//with compare(LineSegment ls1, LineSegment ls2) and you dont need typecasting

或者,如果您打算进行比较,那么您需要如下实现:

class LineSegment extends Shape implements Comparable<LineSegment>{
public int getArea() {...}

public int compareTo(LineSegment object1)
{

return Double.compare(this.getArea(), object1.getArea());
}
}

关于java - 在 Java 中实现比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26948604/

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