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

deoksam님의 프로필 이미지
deoksam

작성한 질문수

김영한의 실전 자바 - 중급 2편

타입 매개변수 제한4 - 타입 매개변수 제한

타입 매개변수 제한 강의 질문

해결된 질문

작성

·

174

1

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

//문제 2: 개 타입 반환
//dogHospital.setAnimal(dog);
Dog bigger = dogHospital.bigger(new Dog("멍멍이2", 400));
System.out.println(bigger);

문제점 2번에서

dogHospital.setAnimal(dog); 선언을 새로 한 이유가 있나요 ? 주석처리하고 컴파일해도 정상적으로 작동해서 여쭤봅니다.

답변 1

0

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

타입 매개변수 제한4 - 타입 매개변수 제한 의를 살펴봤는데, 질문에 남기신 dogHospital.setAnimal(dog);

코드 확인이 안되네요 😀

dogHospital.set(dog);에서 dogHospital.setAnimal(dog);로 변경한 시점을 알 수 있을까요?

 

image

감사합니다.

deoksam님의 프로필 이미지
deoksam
질문자

저는 처음에 AnimalHospitalV3<T extends Animals> 클래스에서

setter 메서드를 강사님처럼 set이 아닌 setAnimal로 작성했습니다.

 

타입 매개변수 제한2 - 다형성 시도 예시에서 개병원에 고양이를 넣어도 문제가 발생하지 않는 아래와 같은 상황에 대한

image

해결책으로 아래와 같이 제네릭을 도입한 개병원/고양이 병원 분리하는 코드를 추가하였는데요.

AnimalHospitalV3<Dog> dogHospital = new AnimalHospitalV3<>();
AnimalHospitalV3<Cat> catHospital = new AnimalHospitalV3<>();

분리하기 전의 상황에서는 set()을 하는게 의미가 있었겠지만

 

타입 매개변수 제한4에서는 개병원에 개를 두번 넣는 중복이여서 동작에는 문제가 없었겠네요 😀

image

동작의 오류가 아니고 전달하려는 핵심의도까지는 아니다보니

강의 예제코드 골격을 크게 변경하지 않고 핵심 부분 코드만 예제에서 변경하신 것 같아요^^

집중해서 학습하지 않는다면 신경쓰기 쉽지 않은 부분이라 생각하는데, 꼼꼼히 학습하시는 것 같습니다 😀

deoksam님의 프로필 이미지
deoksam

작성한 질문수

질문하기