๊ธ€ ์ž‘์„ฑ์ž: ์ด์ง€์›๐ŸŒฉ๏ธ
@Log4j
public class Main {
    public static ArrayList<String> items = new ArrayList<String>();
    public static ArrayList<Integer> itemNo = new ArrayList<Integer>();

    public static void main(String[] args) {
        Service service = new Service();

        service.getNo();

        for (int i: itemNo) {
            service.getDetail(i);
            log.info(items.size());
        }

        log.info(items.size());
    }
}
public class Service {
    public void getNo() {
        // ... ์ƒ๋žต ...

        for (int i : no) {
            Main.itemNo.add(i);
        }
    }

    public void getDetail() {
        String itemDetail = new String();

        // ... ์ƒ๋žต ...

        Main.items.add(itemDetail);
    }
}

์œ„ ์ฝ”๋“œ์™€ ๋น„์Šทํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. ๋‚˜๋Š” getDetail()์—์„œ ๋งŒ๋“  ๋ฐ์ดํ„ฐ๋ฅผ Main ํด๋ž˜์Šค์—์„œ ์„ ์–ธํ•œ ์ „์—ญ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. Main ํด๋ž˜์Šค 13๋ฒˆ์งธ ์ค„, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ for๋ฌธ ์•ˆ์—์„œ๋Š” items.size()๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋กœ๊ทธ์— ์ž˜ ์ฐํžˆ๋Š”๋ฐ, 16๋ฒˆ์งธ ์ค„, for๋ฌธ์ด ๋๋‚˜๊ณ  ๋‚œ ํ›„์—๋Š” index 0 out of bounds for length 0 ๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. getNo()๋„ getDetail()๊ณผ ๋˜‘๊ฐ™์ด ์ „์—ญ ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ฐ itemNo๋Š” ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค. ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฒŒ ์•„๋‹ˆ์—ˆ๋˜ ๊ฑธ๊นŒ? ์ด์ƒํ•˜๊ฒŒ๋„ ๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚˜๋ฉด ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™”๋๋‹ค.

 

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ ์ผ๋ถ€๋ฅผ ์ˆ˜์ •ํ•ด์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

@Log4j
public class Main {
    public static ArrayList<String> items = new ArrayList<String>();
    public static ArrayList<Integer> itemNo = new ArrayList<Integer>();

    public static void main(String[] args) {
        Service service = new Service();

        service.getNo();

        for (int i: itemNo) {
            String it = service.getDetail(i);
            if (it != null) {
                items.add(it);
            }
        }

        log.info(items.size());
    }
}
public class Service {
    public void getNo() {
        // ... ์ƒ๋žต ...
    }

    public String getDetail() {
        String itemDetail = new String();

        // ... ์ƒ๋žต ...

        return itemDetail;
    }
}

๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚˜๊ณ ๋„ ์ •์ƒ์ ์œผ๋กœ items.size()๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์ˆ˜์ •ํ•œ ๋ฐฉ์‹์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

-

๊ธฐ๋ก์šฉ๐Ÿค”

๋ฐ˜์‘ํ˜•