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