我一直在努力,现在学习了一段时间可比类,我知道正确的语法和如何在大多数情况下被使用。 如:
int result = ObjectA.compareTo(ObjectB);
如果两个对象是相同的将返回值0; 如果对象A的负值小于对象B,或正值如果A大于B.
然而,当我去其实编写使用compareTo方法的程序,编译器是说,它无法找到compareTo方法。
我的问题是:我一定要直接从可比类继承为了使用compareTo方法? 只有我问原因,是因为你没有明确地继承像的toString方法或等于......因为一切从对象继承。 哪里的CompareTo归入?
您需要实现Comparable
界面:
public class MyClass implements Comparable<MyClass>
然后声明compareTo()
方法:
public int compareTo(MyClass myClass){
//compare and return result
}
Comparable
是一个接口,而不是一个类。 所以,你会实现接口,而不是继承的类。 此外,实现接口意味着实施的compareTo
方法自己在你的实现类。
Comparable
是一个接口让你不“继承”它( extends
),但其实现( implements
)。
你可以写自己compareTo
在你的类中的方法不指定Comparable
接口,但随后的API中的方法不会知道,如果你的物体满足合同中Comparable
强制实施。 所以,你将无法使用类似的方法Arrays.sort()
等,其期望与那些执行对象的工作Comparable
。
如果你希望你的类的对象A
比较,可能是因为你喜欢来整理对象的列表,你需要做的类A
实现Comparable
接口。
一旦类A
实现Comparable
它必须实现并定义的行为compareTo
,基本上是你想怎么类的两个对象A
进行比较。
这是这种方法,你可以决定哪些类的字段A
评估较小参加-对象的或greaterness。