강의

멘토링

커뮤니티

Inflearn Community Q&A

pmamoon792689's profile image
pmamoon792689

asked

Spring Batch

Understanding ItemReader / ItemWriter / ItemProcessor

CustomerItemReader 소스 중

Written on

·

358

0

안녕하세요. 강사님

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

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

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

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

감사합니다.

spring-bootspring-batch

Answer 1

1

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

pmamoon792689's profile image
pmamoon792689

asked

Ask a question