java如何使用指定的属性和排序顺序对列表进行排序
我有一个java bean列表,现在我想用指定的属性和排序顺序对它们进行排序 (属性和排序顺序是输入参数),如下所示:
class Person{
private String userName;
private Integer age;
private String address;
public void sort(List<Person> ps, String property, String sortOrder)
{
// How to use the property and sortOrder??
Collections.sort(ps);
}
}
写sortList()
方法的最佳方式是什么?
事实上我有一个办法。我可以为Person编写两个静态属性。然后在排序之前设置这两个属性:
class Person implements Comparable<Person>{
private String userName;
private Integer age;
private String address;
public static String sortProperty;
public static String sortOrder;
public void sort(List<Person> ps, String property, String sortOrder)
{
Person.sortProperty=property;
Person.sortOrder=sortOrder;
Collections.sort(ps);
}
@Override
public int compareTo(Person o)
{
// find the property with Person.sortProperty using reflection
// then sort the property
}
}
这不是一个好的解决方案。谁能给我一些建议吗?提前谢谢
共 (0) 个答案