这篇文章主要介绍Java如何定义Holder类实现参数的输出,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!定义Holder类实现参数的输出在很多语言中,函数的参数都有输入(in)、输出(out)和输入输出(inout
这篇文章主要介绍Java如何定义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类实现参数的输出”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: Java如何定义Holder类实现参数的输出
本文链接: https://lsjlt.com/news/230752.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0