定义holder类实现参数的输出在很多语言中,函数的参数都有输入(in)、输出(out)和输入输出(inout)之分。在c/c++语言中,可以用对象的引用(&)来实现函数参数的输出(out)和输入输出(inout)。但在java语言中,虽然没有提供对象引用类似的功能,但是可以通过修改参数的字段值来实现函数参数的输出(out)和输入输出(inout)。这里,我们叫这种输出参数对应的数据结构为holder(支撑)类。
holder类实现代码:
/** 长整型支撑类 */@getter@setter@tostringpublic class longholder { /** 长整型取值 */ private long value; /** 构造函数 */ public longholder() {} /** 构造函数 */ public longholder(long value) { this.value = value; }}
holder类使用案例:
/** 静态常量 *//** 页面数量 */private static final int page_count = 100;/** 最大数量 */private static final int max_count = 1000;/** 处理过期订单 */public void handleexpiredorder() { longholder minidholder = new longholder(0l); for (int pageindex = 0; pageindex < page_count; pageindex++) { if (!handleexpiredorder(pageindex, minidholder)) { break; } }}/** 处理过期订单 */private boolean handleexpiredorder(int pageindex, longholder minidholder) { // 获取最小标识 long minid = minidholder.getvalue(); // 查询过期订单(按id从小到大排序) list<orderdo> orderlist = orderdao.queryexpired(minid, max_count); if (collectionutils.isempty(tasktaglist)) { return false; } // 设置最小标识 int ordersize = orderlist.size(); minid = orderlist.get(ordersize - 1).getid(); minidholder.setvalue(minid); // 依次处理订单 for (orderdo order : orderlist) { ... } // 判断还有订单 return ordersize >= page_size;}
其实,可以实现一个泛型支撑类,适用于更多的数据类型。
以上就是java如何定义holder类实现参数的输出的详细内容。