섹션 3. ArrayList - 제네릭2
161
작성한 질문수 2
안녕하세요!
해당 파트 복습하다가 궁금증이 생겨 질문 드립니다!
제네릭은 런타임 시점에 Object나 따로 지정한 상한선으로 변하기 때문에 생성자에는 사용하지 못 한다고 이해하고 있습니다.

때문에 해당 배열도 Object 타입으로 선언한 것은 이해했는데요.
여기서 궁금한 것은,

해당 코드도 런타임 시에는 E가 Object로 바뀔텐데, 그럼 Object 타입으로 캐스팅되어서 반환되어야 하는 것이 아닌지 궁금합니다!
혹시 메서드 선언부에 타입 매개변수가 있고 없고의 차이인 건가요?
아니면 pdf 파일에는 나와있지 않지만, Main 함수에서 get 함수를 반환받을 때 거기서 자바가 E 타입으로 캐스팅해주는 건가요?
<질문 정리>
생성자 안에 있는 E 타입은 변하는데, 왜 get 함수 안에 있는 E 타입은 유지가 되는지 궁금합니다!
답변 1
1
안녕하세요. galmeagi2님, 공식 서포터즈 David입니다.
생성자 내, new E는 사용할 수 없습니다.(new 키워드와 타입정보 E).
이런 부분 때문에 모든 것을 받을 수 있는 Object로 변경한 것입니다.
add, get에 있는 E는 리스트 생성시 전달되는 타입으로 변경됩니다.
이 부분은 new 키워드와 E가 사용될 수 없는 부분과는 다릅니다:)
이 부분에 대해서는 직접 구현하는 배열 리스트5 - 제네릭2편에서 자세하게 설명하고 있습니다. 이해가 잘 안되시는 부분이 있다면 반복 청취한 후 궁금하신 부분을 다시 질문 부탁드립니다.
감사합니다.
제네릭 타입 매개변수 제한과 관련한 문의입니다.
0
77
3
강의가 좀 버겁다 느껴질 때 학습방법 문의
1
129
4
제네릭 반환값 및 파라미터 선언 방식의 변화 <T> T
0
57
1
new T()가 안 되는 니유
0
96
1
안녕하세요, 문제와 실행 결과가 다른 부분이 있어 제보드립니다.
0
97
2
자바 로드맵 선택 질문
0
110
2
실전 자바 중급 - 2편 후 추천 강의
0
174
2
실프로젝트에서 Java25버전 사용
0
115
1
Arrays.sort
0
66
1
블로그 작성 시, 저작권 문제에 대하여
0
165
1
중급2편 56강의 bucket.add(value); 메서드가 이해가 안됩니다.
0
93
3
pop()과 poll()의 차이
0
94
1
특정 index의 노드 조회하기 질문
0
65
2
List.of() 비어있는 불변 리스트 생성
0
80
2
문제2: 개 타입 반환
0
52
2
[리뷰] 중급2편까지 겨우 완강 했습니다.
0
110
2
문제와 풀이1 Ex2와 Ex3
0
64
2
노드 삭제시 노드 null값으로 초기화
0
75
2
강의영상에 대한 질문
0
56
1
타입 매개변수 제한
0
59
1
compareTo
0
67
1
직접 구현하는 연결리스트 3 - 추가 부분 질문있습니다
0
97
3
섹션 8-58 equals and hashcode 에서 코드가 다르게 생성됨
0
68
2
퀴즈 오류 관련 문의
0
108
1





