java.util.Arrays$ArrayList cannot be cast to com.github.pagehelper.Page

722 阅读1分钟

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to com.github.pagehelper.Page; -----> List集和转换成Page报错

问题代码及描述

使用工具类转换方法convertToPageResult的时候直接传入了对应的List结集合,在执行Page page = (Page) result;Page强转的时候报错

protected <E> PageResult<E> convertToPageResult(List<E> result) {
    List<E> list = new LinkedList<>();
    Page<E> page = (Page<E>) result;
    if (page.getTotal() > 0) {
        list.addAll(((Page<E>) result).getResult());
    }
    return new PageResult<>(page.getTotal(), list, page.getPageNum(), page.getPageSize());
}

处理方案

将初始化一个Page对象,然后将对应的集合传入Page对象中,然后调用convertToPageResult方法传入page里的集合对对象就可以使用了

Page<Person> personPage = PageHelper.startPage(1, 20);
personPage.addAll(Arrays.asList(pserson));
    
convertToPageResult(personPage.getResult());

后续有时间在查看造成的原因,先提供解决方案