根據java反射機制 通過傳入的引數 對傳入的List 進行排序
阿新 • • 發佈:2019-02-18
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortData {
public List<?> sortByInt(List<?> list, final String param ){
//自定義Comparator物件,自定義排序
Comparator c = new Comparator() {
@Override
public int compare(Object o1, Object o2) {
try {
Field field1 = o1.getClass().getDeclaredField(param);
Field field2 = o2.getClass().getDeclaredField(param);
field1.setAccessible(true);
field2.setAccessible(true );
if((Integer)field1.get(o1)<(Integer)field2.get(o2))
return 1;
//注意!!返回值必須是一對相反數,否則無效。jdk1.7以後就是這樣。
else return -1;
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}
};
Collections.sort(list, c);
return list;
}
}