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/21626439/

相关文章:

java - Spring MVC 和 UTF-8 : How to work with Swedish special characters?

java - 等距排序的比较误差

java - 为什么可比性在片场不起作用?

java - 对于强制比较类型的集合,抛出运行时异常比编译时检查有什么好处?

java - 了解 Java 中compareTo()方法的语法

java - 无法在 sphinx4 中加载 en-us-semi 模型

java - 以 HTML 显示小程序

java - 字典作为 Android 应用程序

java - Hibernate 在 columnDefinition 周围加上反引号

java - 存储可比较项的通用 java 类