JDK1.8新特性——FunctionInterface

函数式接口FunctionInterface

特征:

  1. 接口中只定义了一个方法。
  2. 接口中允许存在重写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());
    }

你可能感兴趣的:(JDK1.8新特性——FunctionInterface)