美文网首页
Mybatis-plus之分页泛型转换

Mybatis-plus之分页泛型转换

作者: coder4j | 来源:发表于2020-10-11 22:40 被阅读0次

对于vo和po严格规范的同学来说,在使用mybatis-plus进行分页时每次都需要复制分页信息或者重写分页api。其实mybatis-plus早已为我们解决这个问题了,细心的同学会发现在IPage中有一个convert方法,没错!就是这个方法。以后写分页就可以这样写了

public IPage<UserVO> list(PageRequest request) {
  IPage<UserPO> page = new Page(request.getPageNum(), request.pageSize());
  LambdaQueryWrapper<UserPO> qw = Wrappers.lambdaQuery();
  page  = userMapper.selectPage(page, qw);
  return page.convert(u->{ 
    UserVO v = new UserVO();
    BeanUtils.copyProperties(u, v);
    return v;
  });
}

其源码如下:

    /**
     * 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);
    }

可知,其做了一个泛型的强制转换,同时保留了分页信息。

相关文章

  • Mybatis-plus之分页泛型转换

    对于vo和po严格规范的同学来说,在使用mybatis-plus进行分页时每次都需要复制分页信息或者重写分页api...

  • mybatis-plus条件构造器泛型问题

    mybatis-plus中条件构造器泛型问题 new EntityWrapper() mod...

  • UnsafePointer、UnsafeRawPointer 的

    rawPointer 转换 泛型指针

  • 转换操作符

    Cast:将非泛型的 IEnumerable 集合元素转换为指定的泛型类型,若类型转换失败则抛出异常。 ToArr...

  • Java 中的泛型

    泛型的目的:Java 泛型就是把一种语法糖,通过泛型使得在编译阶段完成一些类型转换的工作,避免在运行时强制类型转换...

  • 浅谈Java泛型与泛型通配符使用场景与优缺点

    1. 泛型概述 泛型为JDK1.5之后sun公司推出的新功能,泛型可以消除源代码中的许多强制类型转换,泛型对于数据...

  • 2018-03-16

    泛型:泛型优点: 1,编译时可以保证类型安全。 2,不用做类型转换,获得一定的性能提升。 泛型约束: where ...

  • Java泛型

    1. 泛型通配符与PECS 为什么要使用泛型通配符和边界 List泛型转换需要用到通配符 ? “装A的List” ...

  • 寒假15:泛型

    泛型概述: 泛型定义格式 举个例子: 泛型的好处:把运行时期的问题提前到了编译期间避免了强制类型转换 泛型类: 举...

  • Java中的泛型

    Java中的泛型存在一些编译器特性, 是在编译期间就将泛型代码转换成具体的类型. 泛型的概念 泛型,即“参数化类型...

网友评论

      本文标题:Mybatis-plus之分页泛型转换

      本文链接:https://www.haomeiwen.com/subject/bhrjpktx.html