• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

CustomerItemReader 소스 중

22.01.09 17:21 작성 조회수 186

0

안녕하세요. 강사님

CustomerItemReader 소스를 코딩 하는 중 list.remove(0) 가 null이 나와서 확인해보니 
강사님은
this.list = new ArrayList<>(list); 이렇게 코딩하셨고,
저는 this.list = list 이렇게 코딩을 했더라고요.

그런데 디버깅을 해보면 this.list = list 이렇게 해도 동일하게 

list에 값이 있고 list.get(0)도 접근이 됩니다. 왜 remove 만 안 되는 걸까요? 

그리고 ListItemReader 클래스를 보면 proxy 여부를 체크하는 이유는 뭔지 궁금합니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

잠꾸님의 프로필

잠꾸

2022.11.18

Arrays.asList가 리턴하는 List는 fixed-size list 라고 써있습니다. 즉 사이즈 변경이 안되는 리스트 구현체를 리턴해서 CustomerItemReader 생성자에서 ArrayList로 다시 생성하는 것 같습니다.