Java/객체지향
[객체지향][제네릭스] - 25. 제네릭스와 타입변수
얄루몬
2022. 2. 14. 18:42
📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다.
https://youtu.be/VJheFhw_fmU?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp
[타입 변수란?]
- 클래스를 작성할 때, Object 타입 대신 타입 변수(E)를 선언해서 사용
- T 혹은 E를 많이 사용한다.
- 객체를 생성시, 타입 변수(E) 대신 실제 타입(Tv)을 지정(대입)
ArrayList<Tv> tvList = new ArrayList<Tv>( );
- 타입 변수 대신 실제 타입이 지정되면, 형변환 생략 가능.
[실습]
package javajungsuk;
import java.util.ArrayList;
class Tv{}
class Audio{}
public class GenericTest {
public static void main(String[] args) {
ArrayList<Tv> list = new ArrayList<Tv>(); //Tv타입의 객체만 저장가능
list.add(new Tv());
//list.add(new Audio());
//Tv t = (Tv)list.get(0);
Tv t = list.get(0);
System.out.println(t);
}
}
- Tv객체만 담을 수 있기 때문에 리스트에 Audio는 넣을 수 없다.
- Tv로 타입을 정해주었기 때문에 형변환 생략가능하다.