问答详情
源自:4-2 分页查询

已经查到User列表,想返回userVo列表,这里Ipage是个接口,要怎么转换呢?

public IPage<OrderVo> pageOrderByQuery() {
    QueryWrapper<Order> queryWrapper = new QueryWrapper<Order>();
    IPage<Order> page1 = orderMapper.selectPage(new Page(), queryWrapper);
            //这里Ipage是一个接口,如何将Ipage<Order> 转成Ipage<OrderVo>
    return page1;
}


提问者:慕仰9399367 2020-03-28 16:43

个回答

  • 老猿
    2020-03-31 18:08:45

    可以调用IPage接口中的一个默认方法实现,该默认方法MP已经给我们实现,如下:

    /**
     * IPage 的泛型转换
     *
     * @param mapper 转换函数
     * @param <R>    转换后的泛型
     * @return 转换泛型后的 IPage
     */
    @SuppressWarnings("unchecked")
    default <R> IPage<R> convert(Function<? super T, ? extends R> mapper) {
        List<R> collect = this.getRecords().stream().map(mapper).collect(toList());
        return ((IPage<R>) this).setRecords(collect);
    }


  • qq_慕盖茨71252
    2020-05-07 16:56:44

    123

  • 土木之殇
    2020-03-28 19:17:32

    List<User> list = iPage.getRecords();


  • 慕容1277038
    2020-03-28 19:10:13

    可以自定义一个转换函数,将转换完的结果返回