public class SortList<E>{ /** * @param list 需要被排序的list * @param method 某属性字段的getter方法,根据该字段排序 * @param sort desc倒序,asc正序 * */ public void Sort(List<E> list, final String method, final String sort){ Collections.sort(list, new Comparator() { @Override public int compare(Object a, Object b) { int ret = 0; try{ Method m1 = ((E)a).getClass().getMethod(method, null); Method m2 = ((E)b).getClass().getMethod(method, null); //倒序 if(sort != null && "desc".equals(sort)){ ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString()); } //正序 else{ ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString()); } }catch(NoSuchMethodException ne){ System.out.println(ne); }catch(IllegalAccessException ie){ System.out.println(ie); }catch(InvocationTargetException it){ System.out.println(it); } return ret; } }); } }