Java Interface Comparator静态比较

Lor*_*cci 5 java static comparator

int compare(Object o1,Object o2)比较它的两个参数的顺序.

比较2对象o1和o2需要做类似的事情:

MyClass o1=new MyClass();
MyClass o2=new MyClass();

 if (o1.compare(o1,o2)>0) ......
Run Code Online (Sandbox Code Playgroud)

为什么这个方法不是静态的?如果方法是静态的,如:

 if (MyClass.compare(o1,o2)>0) ....
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

如果它是静态的,怎么可能被称为多态?关键Comparator是你可以将一个实例传递给像sort...... 那样必须在比较器实例上调用compare方法.

如果一个类能够将自身的一个实例与另一个实例进行比较,那么它应该实现Comparable,所以你要写:

if (o1.compareTo(o2))
Run Code Online (Sandbox Code Playgroud)