一尘不染

如何实现Java可比接口?

java

我不确定如何在我的抽象类中实现类似的接口。我有以下示例代码可用来尝试解决这个问题:

public class Animal{
    public String name;
    public int yearDiscovered;
    public String population;

    public Animal(String name, int yearDiscovered, String population){
        this.name = name;
        this.yearDiscovered = yearDiscovered;
        this.population = population; }

    public String toString(){
        String s = "Animal name: "+ name+"\nYear Discovered: "+yearDiscovered+"\nPopulation: "+population;
        return s;
    }
}

我有一个测试类,该类将创建Animal类型的对象,但是我希望在该类中具有一个可比的接口,以使发现的年纪高于低位。我不知道如何去解决这个问题。


阅读 381

收藏
2020-03-06

共1个答案

一尘不染

您只需要定义Animal implements Comparable<Animal>即public class Animal implements Comparable<Animal>。然后,您必须以compareTo(Animal other)自己喜欢的方式实现该方法。

@Override
public int compareTo(Animal other) {
    return Integer.compare(this.year_discovered, other.year_discovered);
}

使用的实现compareTo,具有较高级别的动物year_discovered将获得更高的顺序。我希望你的想法ComparablecompareTo这个例子。

2020-03-06