这个比较好用,通用的工具类。
1 public class SortList<E>{
2 public void sort(List<E> list, final String method, final String sort){
3 Collections.sort(list, new Comparator() {
4 public int compare(Object a, Object b) {
5 int ret = 0;
6 try{
7 Method m1 = ((E)a).getClass().getMethod(method, null);
8 Method m2 = ((E)b).getClass().getMethod(method, null);
9 if(sort != null && "desc".equals(sort))//倒序
10 ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());
11 else//正序
12 ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());
13 }catch(NoSuchMethodException ne){
14 System.out.println(ne);
15 }catch(IllegalAccessException ie){
16 System.out.println(ie);
17 }catch(InvocationTargetException it){
18 System.out.println(it);
19 }
20 return ret;
21 }
22 });
23 }
24 }
以下是使用方法:
1 //目标List
2 List<dto> aa = new ArrayList<dto>();
3 //开始排序
4 SortList<dto> list = new SortList<dto>();
5 //中间是按哪个字段排序(该字段的get方法)
6 list.sort(aa, "getVersion", "");