강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của pmamoon792689
pmamoon792689

câu hỏi đã được viết

đợt xuân

Tìm hiểu về ItemReader / ItemWriter / ItemProcessor

CustomerItemReader 소스 중

Viết

·

363

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

Câu trả lời 1

1

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

Hình ảnh hồ sơ của pmamoon792689
pmamoon792689

câu hỏi đã được viết

Đặt câu hỏi