gpt4 book ai didi

Java:实现 Comparable 接口(interface)的问题

转载 作者:行者123 更新时间:2023-12-02 04:22:08 25 4
gpt4 key购买 nike

我正在学习 Java 并做一些简单的编程问题。其中之一是在 Octagon 类中实现 Comparable 接口(interface),以允许根据八边形的边长进行排名。这是我的代码片段:

class Octagon implements Comparable
{
private double side;

public Octagon(double side)
{
this.side = side;
}

public double getSide()
{
return side;
}

@Override
public int compareTo(Octagon oct)
{
/*
if (this.getSide()==oct.getSide())
return 0;
return this.getSide()>oct.getSide()?1:-1;
*/

/*
if(this.getSide()==oct.getSide())
return 0;
else if (this.getSide()<oct.getSide())
return 1;
else
return -1;
*/

/*
if (this.getSide()>oct.getSide())
return 1;
else if (this.getSide() == oct.getSide())
return 0;
else
return -1;
*/

/*
if(this.getSide()<oct.getSide())
return -1;
else if (this.getSide() == oct.getSide())
return 0;
else
return -1;
*/
/*
if(this.getSide()<oct.getSide())
return -1;
else if (this.getSide()>oct.getSide())
return 1;
else
return 0;
*/
/*
if(this.getSide()>oct.getSide())
return 1;
else if (this.getSide()<oct.getSide())
return -1;
else
return 0;
*/
}
}

我已经尝试了所有可能的排列来比较两侧,正如您在所有注释掉的 block 中看到的那样,编译器似乎随机提示该方法没有覆盖抽象的compareTo(T o)方法有时可以比较,但有时却突然不行。我真的不知道这是怎么回事。如有任何帮助,我们将不胜感激。

最佳答案

你需要这样:

class Octagon implements Comparable<Octagon>{//Generic allows compiler to have Octagon as param
@Override
public int compareTo(Octagon o) {
return 0;
}
}

class Octagon implements Comparable{//No generic used. Allows to compare any object(s)
@Override
public int compareTo(Object o) {
return 0;
}
}

关于Java:实现 Comparable 接口(interface)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643686/

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