我不确定如何在我的抽象类中实现类似的接口 . 我有以下示例代码,我正在尝试并解决它:
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类型的对象,但是我希望在这个类中有一个类似的接口,以便旧年的发现排名高于低 . 我不知道如何解决这个问题 .
10 回答
你只需要定义
Animal implements Comparable<Animal>
即public class Animal implements Comparable<Animal>
. 然后你必须以你喜欢的方式实现compareTo(Animal other)
方法 .使用
compareTo
的这种实现,具有更高year_discovered
的动物将被命令更高 . 我希望你能通过这个例子得到Comparable
和compareTo
的想法 .你需要:
将
implements Comparable<Animal>
添加到类声明中;和实现
int compareTo( Animal a )
方法以执行比较 .像这样:
当你在其中时,我建议记住一些关于compareTo()方法的关键事实
CompareTo必须与equals方法一致,例如如果两个对象通过equals()相等,则compareTo()必须返回零,否则如果这些对象存储在SortedSet或SortedMap中,它们将无法正常运行 .
如果当前对象与null对象进行比较,则CompareTo()必须抛出NullPointerException,而不是在这种情况下返回false的equals() .
阅读更多:http://javarevisited.blogspot.com/2011/11/how-to-override-compareto-method-in.html#ixzz4B4EMGha3
在您的类中实现
Comparable<Animal>
接口,并在您的类中提供int compareTo(Animal other)
方法的实现 . See This Post您需要实现接口并定义compareTo()方法 . 有关一个好的教程请转到 - Tutorials point link或MyKongLink
需要
API Version 19
的Integer.compare
方法源代码的可能替代方法是:public int compareTo(Animal other) { return Integer.valueOf(this.year_discovered).compareTo(other.year_discovered); }
此备选方案 does not 要求您使用
API version 19
.Emp类需要实现Comaparable接口,因此我们需要覆盖其compateTo方法 .
这是实现java可比接口的代码,
使用比较器......
通过实现实现Comparable的公共类可以很容易地完成这件事 . 这将允许您使用compareTo方法,该方法可以与您要比较的任何其他对象一起使用 .
例如,您可以通过这种方式实现它:
我想这可能会解决你的目的 .