有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案