Java

제네릭 사용 이유

Sol b 2023. 9. 26. 19:27
객체의 타입을 미리 정해
번거로운 형변환을 줄여주고 컴파일시 객체의 타입을 체크하기 위해 사용합니다.
즉, 사전에 형 변환시 발생하는 문제점을 없애기 위해 사용합니다.

 

사용 이유

  • 객체선언시 타입을 정하기 때문에 객체안에 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거 가능
  • 불필요한 형변환 줄이기 위해

 

제네릭 사용 전

class Box {
    Object item;

    void setItem(Object item) {this.item = item;}
    Object getItem() {return item;}
}

public class JavaChapter {

    public static void main(String[] args) {
        Box box = new Box();

        box.setItem("AAA");

        String a = (String) box.getItem();
        System.out.println(a);
        
    }
}

위 코드처럼 Object를 사용하면 String으로 변환을 해야합니다.

만약 실수로 Integer나 다른 타입을 넣으면 더 복잡해지게 됩니다...  

 

제네릭 사용 후

class Box<T> {
    T item;

    void setItem(T item) {this.item = item;}
    T getItem() {return item;}
}

public class JavaChapter {

    public static void main(String[] args) {
        Box<String> sbox = new Box<>();
        Box<Integer> ibox = new Box<>();

        sbox.setItem("AAA");
        ibox.setItem(1234);

        System.out.println(sbox.getItem());
        System.out.println(ibox.getItem());
        
    }
}

제네릭을 사용한 코드입니다.

제네릭은 객체 선언시 타입을 미리 정할 수 있습니다.

 

따라서 타입변환을 할 필요가 없습니다.