java1.8 interface_JDK1.8新特性——FunctionInterface

这篇博客介绍了如何利用Java的FunctionInterface实现动态分页查询。通过定义一个只有一个方法的PageAction接口,可以在BaseCurdService类的findbyPage方法中灵活地传入不同的查询逻辑,例如示例中使用userMapper.selectAll()。这种方式提高了代码的可复用性和灵活性。
摘要由CSDN通过智能技术生成

函数式接口FunctionInterface

特征:

接口中只定义了一个方法。

接口中允许存在重写Object类的抽象方法。

PageAction .java

@FunctionalInterface

public interface PageAction {

List> execute();

}

BaseCurdService.java 分页方法定义,当使用分页时,我们并不知道来自于那个Mapper,这里我们就可以使用FunctionInterface来定义这个函数,使用时只需要实现具体的接口即可。

@Override

public Pagination findbyPage(PageRequest pageRequest, PageAction action) {

PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize(), pageRequest.getOrderBy());

//执行DB操作,PageHelper自动对分页进行查询

List> list = action.execute();

PageInfo pageInfo = new PageInfo(list);

Pagination pagination = new Pagination(list);

pagination.setData(pageInfo.getList());

pagination.setPageNum(pageInfo.getPageNum());

pagination.setPageSize(pageInfo.getPageSize());

pagination.setPages(pageInfo.getPages());

pagination.setTotal(pageInfo.getTotal());

return pagination;

}

public Pagination findbyPage(PageRequest pageRequest, UserDTO userDTO) {

return super.findbyPage(pageRequest, () -> userMapper.selectAll());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值