我從數據庫拿到數據 是一個list 拿的時候沒有根據對象屬性排序,繼而在網上找到了關於list根據對象排序的問題,下面是一段通用的代碼:
public <E> E Sort(List<E> list, String getMethod, String sort) {
Collections.sort(list, new Comparator<Object>() {
@SuppressWarnings("unchecked")
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((E)a).getClass().getMethod(getMethod, null);
Method m2 = ((E)b).getClass().getMethod(getMethod, 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;
}
});
return (E) list;
}
使用的時候 調用這個方法 傳三個參數進去 第一個參數:就是你要排序的那個list
第二個參數:你要排序的那個屬性的get方法(比如說userId:“getUserId”)
第三個參數:你倒敘還是怎樣(倒序:“desc” 順序:null)