PageUtil.java 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. package com.izouma.nineth.utils;
  2. import org.springframework.data.domain.Page;
  3. import org.springframework.data.domain.PageImpl;
  4. import org.springframework.data.domain.Pageable;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public interface PageUtil {
  8. /** * Create a {@link org.springframework.data.domain.Page} from a {@link java.util.List} of objects * * @param list List数据 * @param pageable 分页参数. * @param <T> 包含数据 * @return page */
  9. static <T> Page<T> createPageFromList(List<T> list, Pageable pageable) {
  10. if (list == null) {
  11. throw new IllegalArgumentException("list不能为空");
  12. }
  13. int startOfPage = pageable.getPageNumber() * pageable.getPageSize();
  14. if (startOfPage > list.size()) {
  15. return new PageImpl<>(new ArrayList<>(), pageable, 0);
  16. }
  17. int endOfPage = Math.min(startOfPage + pageable.getPageSize(), list.size());
  18. return new PageImpl<>(list.subList(startOfPage, endOfPage), pageable, list.size());
  19. }
  20. }