public static <T> void sortByField(List<T> list, String fieldName, boolean ascending) {
Collections.sort(list, (o1, o2) -> {
try {
Field field = o1.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
Comparable val1 = (Comparable) field.get(o1);
Comparable val2 = (Comparable) field.get(o2);
int comparison = val1.compareTo(val2);
return ascending ? comparison : -comparison;
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
return 0;
});
}
Java,List排序,兼容所有字段类型与正序倒序
最新推荐文章于 2024-07-10 21:37:49 发布