ホームページ  >  記事  >  Java  >  Java は Holder クラスの実装パラメータの出力をどのように定義しますか?

Java は Holder クラスの実装パラメータの出力をどのように定義しますか?

WBOY
WBOY転載
2023-04-30 12:10:06865ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。