본문 바로가기

Various Error

[Java/Stream API] toList() is undefined 에러

문제의 코드
public List<ResponseArticleDTO> list() {
    return boardMapper.selectAll().stream()
            .map(vo -> ResponseArticleDTO.builder()
                    .boardId(vo.getBoardId())
                    .title(vo.getTitle())
                    .content(vo.getContent())
                    .createAt(vo.getCreateAt())
                    .modifyAt(vo.getModifyAt())
                    .build())
            .toList();
//				.collect(Collectors.toList());
}
  • .collect(Collectors.toList())를 사용했을 때는 문제가 되지 않는데 toList()를 사용하게 되면 아래와 같이 빨간 줄로 에러가 발생
The method toList() is undefined for the type Stream<ResponseArticleDTO>

 

원인
  • 해당 에러의 원인은 Stream.toList() 메서드가 Java 16 이상에서 추가된 메서드로 JDK 버전의 문제라고 함

 

버전 확인 및 에러 해결

1. CMD 확인 'java -version' → JDK 17 버전으로 이상 없음

 

2. 현재 프로젝트 JDK 버전 확인 - 프로젝트 우클릭 - Build Path - Configure Build Path - Libraries → Java 11버전

 

3. 프로젝트 버전 및 Java Compiler 버전 변경

 

4. 빨간 줄(에러) 해결 완료