ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 타입 변수
    공부/Java 2024. 4. 19. 21:49

    타입 변수

     

    - 지네릭스 클래스를 작성할 때, Object 타입 대신 타입 변수(E)를 선언해서 사용한다.

     

    타입 변수에 대입하기

    - 객체를 생성시, 타입 변수(E) 대신 실체 타입을 지정(대입)

    - 타입 변수 대신 실제 타입이 지정되면, 형변환 생략 가능

     

    예제

    class Tv{}
    class Audio{}
    
    public class ANewDream109{
    	public static void main(String[] args){
        	ArrayList<Tv> list = new ArrayList<Tv>();	//Tv타입의 객체만 저장 가능
            list.add(new Tv());
    //      list.add(new Audio());		-> 에러
    
    	Tv t = list.get(0);
        }
    }

     

    위 예제에서 ArrayList<Tv> list = new ArrayList<Tv>();는 실제 타입을 타입 변수로 선언한 것이다.

    때문에 Tv t = list.get(0); 앞에 형변환을 생략할 수 있다.

     

    ArrayList 클래스에 대해 찾아보면 그 이유를 더 자세히 알 수 있다.

    ※ 이클립스에선 ctrl + o를 누르면 클래스의 멤버 목록이 나타난다.

    add 멤버를 찾으면 아래와 같이 나와있다.

    public boolean add(E e){
    	ensureCapacityInternal(size + 1);
        	elementData[size++] = e;
        	return true;
    }

     

    add(E e)에서 E는 타입 변수다.

    예제에서 이미 Tv를 타입 변수로 선언했으므로, 자동으로 E에 Tv가 들어간다.

    따라서 Tv t = (Tv) list.get(0); 이렇게 형변환(타입 캐스팅)을 직접 쓰지 않아도,

    형변환이 이미 이뤄진 상태가 된다.

    지네릭스를 잘 활용하면 전체적인 코드가 깔끔해져 가독성이 좋아지니 잘 활용하면 좋을 것 같다.

    '공부 > Java' 카테고리의 다른 글

    Iterator<E>  (0) 2024.04.22
    지네릭스 용어, 지네릭 타입과 다형성  (0) 2024.04.20
    지네릭스(Generics)  (0) 2024.04.19
    Collections 클래스  (0) 2024.04.18
    해싱(hashing)  (0) 2024.04.17
Designed by Tistory.