코드 질문
35
작성한 질문수 1
AdminService.java에서
List<MemberDto> admins = memberEntities.stream()
.map(MemberEntity::toDto)
.collect(Collectors.toUnmodifiableList());Collectors.toList();이 코드에서 Collercotrs.toList(); 가 의미가 있는 코드일까요? 줄바꿈도 안되어 있고, 약간 이해가 안되는 문장 같아서 질문드립니다.
답변 2
0
좋은 질문입니다.
해당 코드의 'Collectors.toList();' 는 사실상 의미가 없는 코드입니다.
원래는 아래와 같이 작성되어 있었을 가능성이 높습니다.
.collect(Collectors.toList());
이후 'Collectors.toUnmodifiableList()'로 변경하는 과정에서 실수로 'Collectors.toList();'가 남아버린 것 같습니다.
죄송합니다.
참고로,
.collect(Collectors.toList())
는 수정 가능한(Mutable) List를 반환하고,
.collect(Collectors.toUnmodifiableList())
는 수정 불가능한(Unmodifiable) List를 반환합니다.
즉, 'toUnmodifiableList()'로 생성된 List는 요소를 추가하거나 삭제하려고 하면 예외가 발생합니다.
해당 예제는 조회 결과를 반환하는 용도이므로 외부에서 실수로 데이터를 변경하지 못하도록 'Collectors.toUnmodifiableList()'를 사용하는 것이 더 적절하다고 판단하여 변경했던 것으로 기억합니다.
질문해주셔서 감사합니다. 강의 코드 작성 과정에서 남아있는 불필요한 코드였습니다.
학습 과정에서 혼동을 드리게 된 점 양해 부탁드립니다.
0
안녕하세요, 인프런 AI 인턴입니다.
피플로마님, 질문해주신 코드에 대해 설명드리겠습니다.
코드에서
List<MemberDto> admins = memberEntities.stream()
.map(MemberEntity::toDto)
.collect(Collectors.toUnmodifiableList());Collectors.toList();
부분을 보면, Collectors.toUnmodifiableList() 다음에 쓰여진 Collectors.toList();는 의미가 없는 코드입니다. 이미 Collectors.toUnmodifiableList()를 사용하여 Stream 결과를 변경 불가능한 리스트로 수집하고 있습니다. Collectors.toList();는 그 뒤에 독립적으로 사용될 수 없는 상태입니다.
이는 자바 구문 오류를 발생시키며, 원하지 않는 결과를 초래할 수 있습니다. 단지 코드 가독성을 떨어뜨릴 뿐만 아니라 실행 시 에러를 유발할 가능성이 큽니다. 따라서 Collectors.toList(); 부분은 제거하시는 것이 좋습니다.
추가적으로 Spring Boot 관련하여 궁금하신 점이 있다면, 공식 문서를 참조하시거나, 관련 태그로 Stack Overflow에 질문을 남겨보시는 것도 좋은 방법입니다.
도움이 되셨길 바랍니다! 👍
3,4장 이후 미션 제출 질문
0
11
1
setter 사용하지 않기
0
14
1
윈도우에서 Node js를 설치하고 싶어요
0
24
0
안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?
0
26
2
자막 오타 제보
0
29
1
rabbitmq에 configservice 연결에 대해 질문있습니다.
0
30
1
Dto와 Entity 사용 관련 질문
0
64
2
application.properties 작성 관련 질문
0
73
2
IDE를 Eclipse로 설지해서 수업을 진행해도 되나요
0
92
2
일정 삭제 시 예외 발생 질문과 이전 질문에 대한 추가질문드립니다.
0
93
2
일정 등록 및 조회 부분 강의 질문입니다.
0
93
2
JWT 기반 인증
1
95
2
properties 파일 질문입니다
0
91
1
인터셉터
0
106
2
DTO 관련
0
117
2
추가 강의 해주실수 있나요?
0
129
1
데이터베이스 테이블이 중복 생성 되는 오류
0
142
3
mysql 설치파일
0
95
2
dto 타입
0
93
1
로그인 후 (인증완료) /member/modify 접근불가
0
108
2
메일 보내는 메서드에서
0
88
1
인터셉터 질문
0
123
2
AOP에 대한 설명
0
195
2
코드
0
170
1





