Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

타입 변수 본문

Java/JAVA3

타입 변수

빌드이너프 2023. 7. 25. 17:33

타입 변수

지네릭스 클래스를 작성할 때, 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의 첫번째 요소를 꺼냄
    }
}