郑永安
2023-06-19 2fcd97552d16718cc7997629fd637a73a5a4483f
src/main/java/com/gk/firework/Domain/Vo/SortData.java
对比新文件
@@ -0,0 +1,65 @@
package com.gk.firework.Domain.Vo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.lang.reflect.Field;
import java.util.Comparator;
public class SortData {
    public List<?> sortByInt(List<?> list, final String param ,Byte order){
        //自定义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(null == field1.get(o1) || null == field2.get(o2)){
//                        return 0;
//                    }
                    if((Integer)field1.get(o1)<(Integer)field2.get(o2)){
                        return 1;
                    }else  if((Integer)field1.get(o1)>(Integer)field2.get(o2)){
                        return -1;
                    }else {
                        return 0;
                    }
                    //注意!!返回值必须是一对相反数,否则无效。jdk1.7以后就是这样。
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return 1;
            }
        };
        if(order == 1){
            Collections.sort(list, c);
        }else {
            Collections.sort(list, c.reversed());
        }
        return list;
    }
    public List<?> Pagination(Integer pageNum, Integer pageSize, List<?> dataList) {
        Integer totalCount = dataList.size();
        List<?> result = new ArrayList<>();
        if (pageSize != null) {
            // 默认页面大小为10
            pageSize = pageSize > 0 ? pageSize : 10;
        }
        if (pageNum != null) {
            pageNum = pageNum > 0 ? pageNum : 0;
        }
        Integer beginindex = (pageNum-1)*pageSize;
        Integer endindex = pageNum * pageSize < totalCount ? pageNum * pageSize : totalCount;
        result = dataList.subList(beginindex,endindex);
        return result;
    }
}