Heim >Java >javaLernprogramm >Wie definiert Java die Ausgabe der Implementierungsparameter der Holder-Klasse?
In vielen Sprachen sind die Parameter einer Funktion in Eingabe (in), Ausgabe (out) sowie Eingabe und Ausgabe (inout) unterteilt. In der Sprache C/C++ können Objektreferenzen (&) verwendet werden, um die Ausgabe (out) und die Eingabe und Ausgabe (inout) von Funktionsparametern zu implementieren. Obwohl es in der Java-Sprache keine ähnliche Funktion für Objektreferenzen gibt, können die Ausgabe (out) und die Eingabe und Ausgabe (inout) von Funktionsparametern durch Ändern der Feldwerte der Parameter realisiert werden. Hier nennen wir die Datenstruktur, die diesem Ausgabeparameter entspricht, die Holder-Klasse (Unterstützung).
Implementierungscode der Holder-Klasse:
/** 长整型支撑类 */@Getter@Setter@ToStringpublic class LongHolder { /** 长整型取值 */ private long value; /** 构造函数 */ public LongHolder() {} /** 构造函数 */ public LongHolder(long value) { this.value = value; } }
Anwendungsfall der Holder-Klasse:
/** 静态常量 *//** 页面数量 */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; }
Tatsächlich kann eine generische Unterstützungsklasse implementiert werden, die für mehr Datentypen geeignet ist.
Das obige ist der detaillierte Inhalt vonWie definiert Java die Ausgabe der Implementierungsparameter der Holder-Klasse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!