排序的方法类
/**
* 排序算法,可以调用这个方法进行倒序 、顺序
* @param list 要进行排序的 List
* @param method 要对list中的对象的那个属性的get方法进行排序 比如 时间 time get方法为getTime() 只需要传入getTime即可
* @param sort 传入字符串 是进行倒序还是逆序
* @return
*/
public void sort(List<SimpleReportDocInfo> list, final String method, final String sort){
Collections.sort(list, new Comparator<Object>() {
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((SimpleReportDocInfo)a).getClass().getMethod(method, null);
Method m2 = ((SimpleReportDocInfo)b).getClass().getMethod(method, null);
if(sort != null && "desc".equals(sort))//倒序
ret = m2.invoke(((SimpleReportDocInfo)b), null).toString().compareTo(m1.invoke(((SimpleReportDocInfo)a), null).toString());
else//正序
ret = m1.invoke(((SimpleReportDocInfo)a), null).toString().compareTo(m2.invoke(((SimpleReportDocInfo)b), null).toString());
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
});
}
/**
* 排序算法,可以调用这个方法进行倒序 、顺序
* @param list 要进行排序的 List
* @param method 要对list中的对象的那个属性的get方法进行排序 比如 时间 time get方法为getTime() 只需要传入getTime即可
* @param sort 传入字符串 是进行倒序还是逆序
* @return
*/
public void sort(List<SimpleReportDocInfo> list, final String method, final String sort){
Collections.sort(list, new Comparator<Object>() {
public int compare(Object a, Object b) {
int ret = 0;
try{
Method m1 = ((SimpleReportDocInfo)a).getClass().getMethod(method, null);
Method m2 = ((SimpleReportDocInfo)b).getClass().getMethod(method, null);
if(sort != null && "desc".equals(sort))//倒序
ret = m2.invoke(((SimpleReportDocInfo)b), null).toString().compareTo(m1.invoke(((SimpleReportDocInfo)a), null).toString());
else//正序
ret = m1.invoke(((SimpleReportDocInfo)a), null).toString().compareTo(m2.invoke(((SimpleReportDocInfo)b), null).toString());
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
});
}