溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java如何定義Holder類實(shí)現(xiàn)參數(shù)的輸出

發(fā)布時(shí)間:2022-03-11 11:45:07 來源:億速云 閱讀:299 作者:小新 欄目:編程語言

這篇文章主要介紹Java如何定義Holder類實(shí)現(xiàn)參數(shù)的輸出,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

定義Holder類實(shí)現(xiàn)參數(shù)的輸出

在很多語言中,函數(shù)的參數(shù)都有輸入(in)、輸出(out)和輸入輸出(inout)之分。在C/C++語言中,可以用對象的引用(&)來實(shí)現(xiàn)函數(shù)參數(shù)的輸出(out)和輸入輸出(inout)。但在Java語言中,雖然沒有提供對象引用類似的功能,但是可以通過修改參數(shù)的字段值來實(shí)現(xiàn)函數(shù)參數(shù)的輸出(out)和輸入輸出(inout)。這里,我們叫這種輸出參數(shù)對應(yīng)的數(shù)據(jù)結(jié)構(gòu)為Holder(支撐)類。

Holder類實(shí)現(xiàn)代碼:

/** 長整型支撐類 */@Getter@Setter@ToStringpublic class LongHolder {    /** 長整型取值 */
    private long value;    /** 構(gòu)造函數(shù) */
    public LongHolder() {}    /** 構(gòu)造函數(shù) */
    public LongHolder(long value) {        this.value = value;
    }
}

Holder類使用案例:

/** 靜態(tài)常量 *//** 頁面數(shù)量 */private static final int PAGE_COUNT = 100;/** 最大數(shù)量 */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) {    // 獲取最小標(biāo)識
    Long minId = minIdHolder.getValue();    // 查詢過期訂單(按id從小到大排序)
    List<OrderDO> orderList = orderDAO.queryExpired(minId, MAX_COUNT);    if (CollectionUtils.isEmpty(taskTagList)) {        return false;
    }    // 設(shè)置最小標(biāo)識
    int orderSize = orderList.size();
    minId = orderList.get(orderSize - 1).getId();
    minIdHolder.setValue(minId);    // 依次處理訂單
    for (OrderDO order : orderList) {
        ...
    }    // 判斷還有訂單
    return orderSize >= PAGE_SIZE;
}

其實(shí),可以實(shí)現(xiàn)一個泛型支撐類,適用于更多的數(shù)據(jù)類型。

以上是“Java如何定義Holder類實(shí)現(xiàn)參數(shù)的輸出”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI