您好,登錄后才能下訂單哦!
這篇文章主要介紹Java如何定義Holder類實(shí)現(xiàn)參數(shù)的輸出,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
在很多語言中,函數(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è)資訊頻道!
免責(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)容。