지네릭 타입의 형변환
- 지네릭 타입과 원시 타입 간의 형변환은 바람직하지 않음
- 와일드 카드가 사용된 지네릭 타입으로는 형변환 가능
지네릭 타입의 제거
- 컴파일러는 지네릭 타입을 제거하고 필요한 곳에 형변환을 넣음
제한된 지네릭 클래스
- extends로 대입할 수 있는 타입을 제한
지네릭스의 제약
- 타입 변수에 대입은 인스턴스 별로 다르게 가능
1 | Box<Apple> appleBox = new Box<Apple>();// Apple객체만 저장 가능 |
2 | Box<Grape> grapeBox = new Box<Grape>(); // Grape객체만 저장 가능 |
- static멤버에 타입 변수 사용 불가
1 | class Box<T> { |
2 | static T item; |
3 | static int compare(T t1, T t2) { |
4 | |
5 | } //에러 |
6 | } |
- 배열,객체 생성할 때 타입 변수 사용불가. 타입 변수로 배열 선언은 가능
1 | class Box<T> { |
2 | T[] itemArr; // OK |
3 | |
4 | T[] toArray() { |
5 | t[] tmArr = new T[itemArr.length]; // 에러 |
6 | } |
7 | } |