public static String getIdString(String id){
String mehodStr = null;
if(id!=null){
char oldChar = id.charAt(0);
char newChar = (oldChar + "").toUpperCase().charAt(0);
String temp =newChar + id.substring(1);
mehodStr = "get" + temp;
}
return mehodStr;
}
//排序
final String sortColumn = (String)searchConditions.getCondition("sortColumn");
final String sortOrder = (String)searchConditions.getCondition("sortOrder");
Collections.sort(list, new Comparator(){
public int compare(Object o1, Object o2) {
try {
//得到get方法名
String getMethodName = StringUtil.getIdString(sortColumn);
Class clazz = o1.getClass();
//get方法
Method m3 = clazz.getDeclaredMethod(getMethodName);
//返回值类型
Class returnType = m3.getReturnType();
//根据返回值类型进行比较
if(returnType == String.class ){
//调用get方法得到field
String field1 = (String)m3.invoke(o1);
String field2 = (String)m3.invoke(o2);
if(field1 == null)
field1 = "";
if(field2 == null)
field2 = "";
if(sortOrder.equals("asc")){
return field1.compareTo(field2);
}else
return field2.compareTo(field1);
}else if(returnType == Date.class){
Date field1 = (Date)m3.invoke(o1);
Date field2 = (Date)m3.invoke(o2);
if(field1 == null)
field1 = new Date();
if(field2 == null)
field2 = new Date();
if(sortOrder.equals("asc")){
return field1.compareTo(field2);
}else
return field2.compareTo(field1);
}else if(returnType == long.class){
long field1 = (Long)m3.invoke(o1);
long field2 = (Long)m3.invoke(o2);
if(sortOrder.equals("asc")){
return (int)(field1-field2);
}else
return (int)(field2-field1);
}else if(returnType == ResumeStatusType.class){
ResumeStatusType field1 = (ResumeStatusType)m3.invoke(o1);
ResumeStatusType field2 = (ResumeStatusType)m3.invoke(o2);
if(field1 == null)
field1 = ResumeStatusType.getInstance("1");
if(field2 == null)
field2 = ResumeStatusType.getInstance("1");
if(sortOrder.equals("asc")){
return field1.getCode().compareTo(field2.getCode());
}else
return field2.getCode().compareTo(field1.getCode());
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}});
//排序end