인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

참깨햄스터님의 프로필 이미지
참깨햄스터

작성한 질문수

스프링 핵심 원리 - 기본편

주문과 할인 도메인 개발

OrderServiceImpl클래스 오류질문입니다

작성

·

43

0

안녕하세요 강의를 듣고 OrderServiceImpl클래스를 작성했는데 오류가 3가지 뜹니다

package hello.core.order;

import hello.core.discount.DiscountPolicy;
import hello.core.discount.FixDiscountPolicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;
import hello.core.member.MemoryMembereRepository;

public class OrderServiceImpl implements OrderService {

    private final MemberRepository memberRepository = new MemoryMembereRepository();
    private final DiscountPolicy discountPolicy = new FixDiscountPolicy();

    @Override
    public Order createOrder(Long memberId, String itemName, int itemPrice){
        Member member = memberRepository.findById(memberId);
        int discountPrice = discountPolicy.discount(member, itemPrice);

        return new Order(memberId, itemName, itemPrice, discountPrice);
    }
}

위 코드의 9번째 줄에서는 Class 'OrderServiceImpl' must either be declared abstract or implement abstract method 'creatOrder(Long, String, int)' in 'OrderService' 에러가

14번째 줄에서는 Method does not override method from its superclass,

16번째 줄에서는 Cannot resolve method 'findById' in 'MemberRepository'에러가 납니다 어떻게 고치면 해결될지 질문글 올립니다

답변 1

0

안녕하세요. 참깨햄스터님, 공식 서포터즈 y2gcoder입니다.

위 코드의 9번째 줄에서는 Class 'OrderServiceImpl' must either be declared abstract or implement abstract method 'creatOrder(Long, String, int)' in 'OrderService' 에러가

14번째 줄에서는 Method does not override method from its superclass,

=> OrderService 인터페이스 코드가 제대로 작성되었는지 확인해주십쇼!

image.png

 

16번째 줄에서는 Cannot resolve method 'findById' in 'MemberRepository'에러가 납니다

해당 부분은 MemberRepository 인터페이스에 findById() 메서드 시그니처가 존재하지 않아 발생하는 것으로 보입니다! 이전 질문(클릭)에 답변을 남겨놓았으니 같이 참고해주시면 좋을 것 같습니다!

 

감사합니다.

해결되었습니다 감사합니다!

참깨햄스터님의 프로필 이미지
참깨햄스터

작성한 질문수

질문하기