>  기사  >  Java  >  Java는 홀더 클래스 구현 매개변수의 출력을 어떻게 정의합니까?

Java는 홀더 클래스 구현 매개변수의 출력을 어떻게 정의합니까?

WBOY
WBOY앞으로
2023-04-30 12:10:06865검색

매개변수 출력을 구현하기 위한 홀더 클래스 정의

많은 언어에서 함수의 매개변수는 입력(in), 출력(out), 입력과 출력(inout)으로 구분됩니다. C/C++ 언어에서는 객체 참조(&)를 사용하여 함수 매개변수의 출력(out)과 입력 및 출력(inout)을 구현할 수 있습니다. 그러나 Java 언어에서는 객체 참조에 대한 유사한 기능이 없음에도 불구하고 매개변수의 필드 값을 수정함으로써 함수 매개변수의 출력(out)과 입출력(inout)을 구현할 수 있다. 여기서는 이 출력 매개변수에 해당하는 데이터 구조를 홀더(지원) 클래스라고 부릅니다.

Holder 클래스 구현 코드:

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

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;
}

실제로 더 많은 데이터 유형에 적합한 일반 지원 클래스를 구현할 수 있습니다.

위 내용은 Java는 홀더 클래스 구현 매개변수의 출력을 어떻게 정의합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제