0%

제네릭스의형변환

지네릭 타입의 형변환

  • 지네릭 타입과 원시 타입 간의 형변환은 바람직하지 않음
  • 와일드 카드가 사용된 지네릭 타입으로는 형변환 가능

지네릭 타입의 제거

  • 컴파일러는 지네릭 타입을 제거하고 필요한 곳에 형변환을 넣음

제한된 지네릭 클래스

  • extends로 대입할 수 있는 타입을 제한

image

지네릭스의 제약

  • 타입 변수에 대입은 인스턴스 별로 다르게 가능
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
}