Maison > Java > javaDidacticiel > Comment Java définit-il la sortie des paramètres d'implémentation de la classe Holder ?

Comment Java définit-il la sortie des paramètres d'implémentation de la classe Holder ?

WBOY
Libérer: 2023-04-30 12:10:06
avant
938 Les gens l'ont consulté

Définissez la classe Holder pour implémenter la sortie des paramètres

Dans de nombreux langages, les paramètres d'une fonction sont divisés en entrée (in), sortie (out) et entrée et sortie (inout). Dans le langage C/C++, vous pouvez utiliser des références d'objet (&) pour implémenter la sortie (out) et l'entrée et la sortie (inout) des paramètres de fonction. Cependant, dans le langage Java, bien qu'il n'existe pas de fonction similaire pour les références d'objets, la sortie (out) et l'entrée et la sortie (inout) des paramètres de fonction peuvent être réalisées en modifiant les valeurs de champ des paramètres. Ici, nous appelons la structure de données correspondant à ce paramètre de sortie la classe Holder (support).

Code d'implémentation de la classe Holder :

/** 长整型支撑类 */@Getter@Setter@ToStringpublic class LongHolder {    /** 长整型取值 */
    private long value;    /** 构造函数 */
    public LongHolder() {}    /** 构造函数 */
    public LongHolder(long value) {        this.value = value;
    }
}
Copier après la connexion

Cas d'utilisation de la classe 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;
}
Copier après la connexion

En fait, une classe de support générique peut être implémentée, qui convient à plus de types de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal