我需要在我班级的所有领域实现排序,我为班上的每个领域编写了一个比较器.但我必须为每个字段编写一个单独的比较器.我认为这不是很正确.如何为我的班级编写一个可以对所有字段进行排序的通用比较器?
我的实体:
public class User {
private long id;
private String name;
private int age;
.....................
Run Code Online (Sandbox Code Playgroud)
我的比较器:
public class UserComparatorById implements Comparator<User> {
public int compare(User user1, User user2) {
int result = (int)(user1.getId() - user2.getId());
if (result != 0) return (int)(result/Math.abs(result));
result = user1.getName().compareTo (user2.getName());
if (result != 0) return (int)(result/Math.abs(result));
result = user1.getAge() - user2.getAge();
return (result != 0) ? (int)(result/Math.abs(result)) : 0;
}
}
Run Code Online (Sandbox Code Playgroud)
public class UserComparatorByName implements Comparator<User> {
public int compare(User user1, User user2) { …Run Code Online (Sandbox Code Playgroud)