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