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

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 핵심 원리 - 기본편

주문과 할인 도메인 개발

오류

해결된 질문

작성

·

196

·

수정됨

0

주문과 할인 도메인 개발 강의에서 아래와 같이 작성하였는데요.

 

package hello.core.order;

import hello.core.discount.DiscountPolicy;
import hello.core.discount.FixDiscountPlicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;
import hello.core.member.MemoryMemberRepository;

public class OrderServiceImpl implements OrderService {

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

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

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

    public DiscountPolicy getDiscountPolicy() {
        return discountPolicy;
    }
}

 

int discountPolicy = discountPolicy.discount(member, itemPrice);

이 부분에서 변수 discountPolicy가 초기화되지 않았을 수 있습니다. 라는 오류가 뜹니다.

 

실제 이 부분 때문에 실행이 안되는데요.

인터페이스를 초기화할 수 없어서 그런거 아닌가요..?

저만 안되나요..?

답변 4

0

삭제된 글입니다

image프로젝트 코드 확인해보았습니다.

위의 두 개 라인에서
discountPolicy 를 discountPrice로 변경하시면 해결 됩니다.

discountPolicy란 이름으로 int 변수명과 DiscountPolicy인스턴스 명을 공유해서 발생한 현상이였습니다.

강의에서는 discountPrice란 변수명을 사용했습니다.

0

삭제된 글입니다

링크 접속이 안됩니다. 아래를 참고하여 링크있는 사용자가 볼 수 있도록 설정을 변경하셔야 합니다

image

image

0

삭제된 글입니다

코드 일부만 봐서는 확인이 어려울 것 같아 실행가능한 프로젝트의 공유를 요청드렸습니다.

이전 댓글을 참고하여 프로젝트 폴더를 압축하여 업로드 후 링크를 공유해주시면 확인 후 답변드리겠습니다.

0

안녕하세요. 현현님, 공식 서포터즈 OMG입니다.

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기