虽然实现了效果,但是不知道为什么。。
package effectiveJava.reverseOrder;
import java.util.Comparator;
public class Person implements Comparator<Comparable<Object>> ,Comparable<Person>{
int age;
@Override
public int compare(Comparable<Object> o1, Comparable<Object> o2) {
return o2.compareTo(o1);
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Person o) {
if(this.age > o.age) return 1;
else if(this.age == o.age) return 0;
else return -1;
}
}
package effectiveJava.reverseOrder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TEST {
public static void main(String[] args) {
List<Person> list = new ArrayList<Person>();
Person p1 = new Person();
p1.setAge(1);
Person p2 = new Person();
p2.setAge(2);
Person p3 = new Person();
p3.setAge(3);
list.add(p3);
list.add(p1);
list.add(p2);
Comparator c = Collections.reverseOrder();
Collections.sort(list,c);
for(Person p: list){
System.out.println(p.age);
}
}
}