충분히 쌓여가는
타입 변수 본문
타입 변수
지네릭스 클래스를 작성할 때, Object 타입 대신 타입 변수(E)를 선언해서 사용
타입 변수에 대입하기
객체를 생성시, 타입 변수(E) 대신 실제 타입(Tv)을 지정(대입)
// 타입 변수 E 대신에 실제 타입 Tv를 대입
ArrayList<Tv> tvList = new ArrayList<Tv>();
Tv가 E에 대입
타입 변수 대신 실제 타입이 지정되면, 형변환 생략가능
코드
import java.util.ArrayList;
class Tvv {}
class Audioo {}
public class typeVariableTest {
public static void main(String[] args) {
ArrayList<Tvv> list = new ArrayList<Tvv>(); // Tvv 타입의 객체만 저장가능
list.add(new Tvv());
// list.add(new Audioo()); // 에러 발생
}
}
list의 반환타입이 Object이기 때문에 (Tvv)로 형변환을 해야했다
import java.util.ArrayList;
class Tvv {}
class Audioo {}
public class typeVariableTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new Tvv());
Tvv t = (Tvv)list.get(0); // list의 첫번째 요소를 꺼냄
}
}
지네릭스 클래스를 이용하면 Tvv 타입이 정해져있기 때문에 형변환을 하지 않아도 된다
import java.util.ArrayList;
class Tvv {}
class Audioo {}
public class typeVariableTest {
public static void main(String[] args) {
ArrayList<Tvv> list = new ArrayList<Tvv>();
list.add(new Tvv());
Tvv t = list.get(0); // list의 첫번째 요소를 꺼냄
}
}
'Java > JAVA3' 카테고리의 다른 글
지네릭 메서드 (0) | 2023.07.28 |
---|---|
와일드 카드 <?>, 지네릭 메서드 (0) | 2023.07.28 |
제한된 지네릭 클래스, 지네릭스의 제약 (0) | 2023.07.27 |
지네릭스 용어, 지네릭 타입과 다형성 (0) | 2023.07.26 |
지네릭스 Generices (0) | 2023.07.25 |