Dalam banyak bahasa, parameter fungsi dibahagikan kepada input (masuk), output (keluar) dan input dan output (keluar). Dalam bahasa C/C++, rujukan objek (&) boleh digunakan untuk melaksanakan output (keluar) dan input dan output (keluar) parameter fungsi. Walau bagaimanapun, dalam bahasa Java, walaupun tiada fungsi serupa untuk rujukan objek, output (keluar) dan input dan output (keluar) parameter fungsi boleh direalisasikan dengan mengubah suai nilai medan parameter. Di sini, kami memanggil struktur data yang sepadan dengan parameter output ini sebagai kelas Pemegang (sokongan).
Kod pelaksanaan kelas pemegang:
/** 长整型支撑类 */@Getter@Setter@ToStringpublic class LongHolder { /** 长整型取值 */ private long value; /** 构造函数 */ public LongHolder() {} /** 构造函数 */ public LongHolder(long value) { this.value = value; } }
Kes penggunaan kelas pemegang:
/** 静态常量 *//** 页面数量 */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; }
Malah, kelas sokongan generik boleh dilaksanakan, yang sesuai untuk lebih banyak jenis data.
Atas ialah kandungan terperinci Bagaimanakah Java mentakrifkan output parameter pelaksanaan kelas Pemegang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!