我有一個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
}
}
這不是一個好的解決方案。任何人都可以給我一些建議嗎?在此先感謝
避免使用反射的好替代方案。 +1。 –