자바 중급 개념캐스팅과 제네릭블랙잭 III

Q

블랙잭 2줄 오류에 대해 다른 질문들을 봤는데도 모르겠습니다.

조회 662

좋아요 0

2018년 4월 7일




댓글 2

2018년 4월 8일
오류 부분과 관련해서 쓰신 코드가 무엇이고, 발생한 오류는 무엇인지 더 구체적으로 올려주시기 바랍니다.
2018년 4월 8일
수정하기가 되지 않아서 답변하기로 작성했습니다.
A
3개의 답변이 있어요
커뮤니티 파트너 채택



2018년 4월 9일

댓글 5

2018년 4월 9일
쉽게 설명하시는 것을 참 잘하시는 것 같습니다. ㅎㅎ 해설을 개선해야겠군요~ 좋은 정보 공유해주셔서 감사합니다!
2018년 4월 9일
모두 화이팅입니다!ㅋㅋ
2018년 4월 9일
제 속마음을 풀어서 쓴거 같네요.. '이쯤이면 T는 정해야 되는거 아닐까?' 에서 막힌건데 힌트 없을까요ㅋㅋ 분명 정한거 같은데 왜 안될까... Box 예시 보니까 알아서 불러와서 쓰던데 ㅜㅜ 라는 생각이 들었거든요..
2018년 4월 9일
제네릭은 설명이 음... 여백의 미가 넘치는 거 같아요. 운전에 비유한다면. 이게 사이드 브레이크에요. 움직이지 말아야할 때 쓰는거에요. 자! 이제 드리프트를 해봅시다 ^^
2018년 4월 10일
풀고나서 다시 댓글 답니다) happiness0110님이 말한 이쯤이면 T는 정해야되는거 아닐까 부분은, 정말 그냥 저희가 원하는 자료형을 써버립니다. BlackjackHand에는 BlackjacCard만 올 수 있잖아요. 캐스팅 하지만 않으면 되니까. phone 예시처럼 여러개가 있는게 아니라는점 참고하시고 푸시면 더 좋을 것 같아요



2018년 4월 8일

댓글 1

2019년 6월 30일
보통 여기에서 한번씩 막힌다고 봅니다. 저도 막혔습니다. 인텔리J를 사용하면 `for (BlackjackCard c : getCards())` 여기에서 호환되지 않는 자료형 에러가 발생합니다. 위엣분처럼 클래스명을 적으면 T가 BlackjackCard로 변경될 수 없다고 나옵니다. 저의 경우엔 클래스명을 원본상태로 두고 컴파일하면 Object가 BlackjackCard로 변경될 수 없다고 나옵니다. 이렇듯 캐스탱이 필요하다는 의미입니다. 캐스팅을 하지 않으려고 한건데 다시 캐스팅을 해야 하는 상황이 발생한겁니다. 고민하다가 `제네릭 extends 정리` 강의내용을 살표보니 가장 앞부분에 `public class PhoneBox extends Box` 이것을 보고 Deck을 Deck로 고쳤더니 잘 되었습니다. 참고로 `public class BlackjackHand extends Deck` 이것도 가능합니다.



2018년 4월 9일

댓글 3

2018년 4월 10일
파이썬 자바 수업 들으면서 처음으로 컨닝을 했어요.. 그리고 잘했다고 생각했습니다.
2018년 4월 10일
마법사로 설명을 해주신걸로 제네릭 개념을 이해했는데, 영상 강의에 있었던 phone과는 전혀 다른 예시여서 더 혼란스러웠던거같습니다.ㅜ 폰을 빼서 쓰는 폰박스와 extend를 한 행에 2개 쓴는 양식으로 계속 생각하다보니 늪에 빠진것 같네요 사실 블랙잭에서 제네릭이 굳이 필요할까라는 생각이 들었어요 T로 유동적으로 만들어볼라고 온갖 짱구를 다굴렸는데 지정을 해버리니까 조금 허무하네요.. 그리고 두 줄 오류는 쓰지 않는 메소드 때문에 나오는 거 때문에 다시 한번 허탈했어요. 많은 분들이 이미 수강한 예시지만 저는 가장 아쉬웠던 문제가 아니었을까 싶네요.. 답변 열심히 해주신 분들과 운영자 분께 뭐라하는게 아니라 ㅋㅋ 저처럼 절망에 빠진 동료 수강생들의 동병상련을 위해서 글 남겨봅니다 ㅋㅋ 이제 다 완강했네요 ㅎㅎ
2018년 4월 10일
한줄 요약, 막히신 분들은 extend 제네릭 폰 예시랑 전혀 다른 문제입니다. 자료형을 지정해준다라는 개념만 사용하시면 happiness님의 해설로 충분히 풀 수 있을게요ㅋㅋ 저처럼 늪에 빠지지 말아주세요..

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇