Java 函数式接口+Lambda表达式实现流式编排函数
public class Func { // 使用Lambda表达式对编写出来的代码可读性较好,毕竟程序是给人看的,给机器执行的。 public static void main(String[] args) { { // 写法一 List<String> result = Func.pageFunc(2, 10, String.class).count(() -> { return 1;// 执行数据库count调用 }).find((p) -> {// 数据库查询 return Lists.newArrayList("1", "2");// xxx.find(p.getStart(), p.getPageSize()); }).done(); System.out.println(Arrays.toString(result.toArray())); } { // 写法二 Func.pageFunc(2, 10, int.class).count(() -> { return 0;// 只有这里返回大于零,才会执行下面的find查询 }).find((p) -> { return Lists.newArrayList(p.getStart(), p.getPageSize()); }).forEach((e) -> {// 消费返回列表 System.out.println("返回元素:" + e); }); } } /** * 分页编排函数调用 * * @param pageNo 请求页码(1,2 ...) * @param findMethodRtnType 数据库查询返回类型(->find()) * @return */ public static <T> Paged<T> pageFunc(int pageNo, Class<T> findMethodRtnType) { return new Paged<T>(pageNo); } /** * 分页编排函数调用 * * @param pageNo 请求页码(1,2 ...) * @param pageSize 每页返回数据条数 * @param findMethodRtnType 数据库查询返回类型(->find()) * @return */ public static <T> Paged<T> pageFunc(int pageNo, int pageSize, Class<T> findMethodRtnType) { return new Paged<T>(pageNo, pageSize); } }
上一篇:
IDEA上Java项目控制台中文乱码