강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

이용규님의 프로필 이미지
이용규

작성한 질문수

강의 도중 오류 질문

작성

·

216

·

수정됨

0

김영한 강사님 강의를 들으면서 공부하다가

 

이렇게 빨간줄이 뜨면서 라는데

 

저는

package hello.hellospring.repository;

import hello.hellospring.domain.Member;

import java.util.*;

public class MemoryMemberRepository implements MemberRepository {

private static Map<Long, Member> store = new HashMap<>();

private static long sequence = 0L;

 

@Override

public Member save(Member member) {

member.setId(++sequence);

store.put(member.getId(), member); return member;

}

@Override

public Optional<Member> findById(Long id) {

return Optional.ofNullable(store.get(id)); }

@Override

public List<Member> findAll() {

return new ArrayList<>(store.values());

} @Override public Optional<Member> findByName(String name) {

return store.values().stream()

.filter(member -> member.getName().equals(name))

.findAny(); } }

이렇게 교수님 강의 들으면서 쓰다가 오류가 나서 일단 복붙을 해봤는데도 저렇게 오류가 뜨는데 왜 이런건가요 ?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

이용규님, Java 코드와 관련된 에러 상황을 설명해 주셔서 감사합니다. 제공해주신 정보에 따르면, MemoryMemberRepository 클래스에서 MemberRepository 인터페이스를 구현하고 있는데 발생하는 문제로 보입니다. 에러 메시지에 따르면 MemoryMemberRepository 클래스가 MemberRepository 인터페이스의 findById() 메서드를 구현해야 한다고 합니다.

제공해주신 코드를 보면 findById 메서드는 이미 구현되어 있습니다. 이러한 상황에서 오류가 발생한 이유는 복사한 코드에 오탈자가 있거나, MemberRepository 인터페이스의 findById 메서드 시그니처와 구현한 메서드 시그니처가 정확히 일치하지 않는 경우일 수 있습니다.

다음 단계로 해결을 시도해보시면 좋을 것 같습니다:
1. MemberRepository 인터페이스에 정의된 findById 메서드의 시그니처를 확인합니다.
2. 이 시그니처가 MemoryMemberRepository에서 구현한 메서드 시그니처와 정확히 일치하는지 검사합니다. 반환 타입, 메서드 이름, 매개변수 타입 및 개수 등이 정확히 일치해야 합니다.
3. IntelliJ IDEA와 같은 IDE를 사용하시고 있다면, IDE의 퀵 픽스(Quick Fix) 기능을 사용하여 findById 메서드를 자동으로 구현하도록 해보십시오.

시그니처가 일치하는데도 문제가 지속된다면 다른 부분에서 발생하는 문제일 수 있으므로, MemberRepository 인터페이스 전체와 함께 MemoryMemberRepository 클래스 전체 코드를 다시 한 번 검토해보시길 권장드립니다. 또한, IDE를 재시작하거나 프로젝트를 새로고침(Rebuild Project) 하는 것도 때로는 문제를 해결할 수 있는 간단한 방법이 될 수 있습니다.

이용규님의 프로필 이미지
이용규

작성한 질문수

질문하기