Java

115. 타입 변수 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 1. 3. 11:47

1. 타입 변수

  • 클래스를 작성할 때, Object타입 대신 타입 변수(E)를 선언해서 사용.
public class ArrayList extends AbstractList {
    private transient Object[] elementData;
    public boolean add(Object o) { }
    public Object get(int index) { }
}

// 변환
public class ArrayList<E> extends AbstractList<E> {
    private transient E[] elementData;
    public boolean add(E o) { }
    public E get(int index) { }
}

 

2. 타입 변수에 대입하기

  • 객체를 생성시, 타입 변수(E) 대신 실제 타입(Tv)을 지정(대입)
// 타입변수 E 대신에 실제 타입 Tv를 대입
ArrayList<Tv> tvList = new ArrayList<Tv>();

public class ArrayList<E> extends AbstractList<E> {
    private transient E[] elementData;
    public boolean add(E o) { }
    public E get(int index) { }
}

// 변환
public class ArrayList extends AbstractList {
    private transient Tv[] elementData;
    public boolean add(Tv o) { }
    public Tv get(int index) { }
}
  • 타입 변수 대신 실제 타입이 지정되면, 형변환 생략가능
class Tv{}
class Audio{}

public class Ex09_1 {
    public static void main(String[] args) {
        ArrayList<Tv> list = new ArrayList<Tv>();
        list.add(new Tv());
//      list.add(new Audio()); // 타입일치X
        
        Tv t = list.get(0); // list의 첫 번째 요소를 꺼낸다.
    }
}