본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

제네릭 타입의 형변환

제네릭 타입의 형변환이 가능할까?

제네릭 타입의 형변환은 일반적으로 unckecked 경고를 발생한다.

컴파일러가 제네릭 타입의 안전성을 보장할 수 없기 때문.

 

 

stringList는 List<String>타입으로 Hello, World란 요소를 가지고있다.

        // String을 저장하는 리스트
        List<String> stringList = new ArrayList<>();
        stringList.add("Hello");
        stringList.add("World");

 

 

이 stringList를 Object형으로 변환하여 출력한다.

(List<Object>) (List<?>) stringList; 이때 경고를 발생할 수 있으나 코드 실행시에는 정상적으로 동작한다.

        // Object로 형변환
        List<Object> objectList = (List<Object>) (List<?>) stringList;

        // 출력
        for (Object obj : objectList) {
            System.out.println(obj);
        }
Hello
World

 

제네릭 타입 형변환시 이가 안전한지를 판단하고 사용하며, 

가능한한 형변환을 최소화하는 것이 좋다.