java - 如何实现Java可比接口(interface)?

标签 java comparable

我不确定如何在我的抽象类中实现类似的接口(interface)。我有以下示例代码,我正在使用它来尝试理解它:

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 类型的对象,但是我希望在此类中具有类似的接口(interface),以便较早的发现排名高于低位。但我不知道如何解决这个问题。

最佳答案

您只需定义 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以这个例子为例。

关于java - 如何实现Java可比接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57948440/

相关文章:

java - 创建一个像环面一样工作的数组

java - 如何使用 DynamicJasper API 在页脚中添加页码选项?

java - 如何在Java中保持原始排序不变的情况下基于比较器执行排序

java - 将对象转换为可比较的运行时错误

java - ArrayList 的对象排序使用可比较的

java - 按列表值对 Java Map 进行排序

Java-您可以使用一条 JOptionPane 消息获取多个变量吗?

java - 类加载器和类对象是否在年轻代中启动?

java - 有没有办法将字符串[这是某个类的对象]转换为某个类的对象?

java - 使用 comparable 来比较不同的变量