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;
}
}
根据java反射机制 通过传入的参数 对传入的List 进行排序
最新推荐文章于 2022-01-25 16:30:02 发布