这是我的带有排序方法的测试类:
public class Main {
public static void main(final String[] args) {
ArrayList<Person> people = new ArrayList<Person>();
Person person1 = new Person("Jonas", 36);
Person person2 = new Person("Petras", 16);
people.add(person1);
people.add(person2);
ArrayList<Integer> ints = new ArrayList<Integer>();
ints.add(6);
ints.add(5);
ints = Main.sortAscending(ints);
System.out.println(ints);
}
public static <T extends Comparable<? super T>> ArrayList<T> sortAscending(
final ArrayList<T> list) {
Collections.sort(list);
return list;
}
}
只要我传入原始类型列表,它就可以正常工作:字符串、整数等。但是,当我尝试传入我的对象列表时,它不起作用。
这是我的课:
public class Person {
final String name;
final int age;
public Person(final String name, final int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return String.format("{name=%s, age=%d}", name, age);
}
}
class AgeComparator implements Comparator<Person> {
@Override
public int compare(final Person person1, final Person person2) {
return person1.age < person2.age ? -1 : person1.age == person2.age ? 0 : 1;
}
}
- 如何使我的方法 sortAscending 与我的班级一起工作?
- 如何抛出我传入的对象没有实现比较方法的异常?