首页 > Java > java教程 > 正文

Java如何定义Holder类实现参数的输出

WBOY
发布: 2023-04-30 12:10:06
转载
1085人浏览过

定义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类实现参数的输出的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:亿速云网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号