IT/Java
지네릭 타입 형변환
봉즙
2019. 7. 17. 21:19
Box box = null;
Box<Object> objBox = null;
box = (Box)objBox; //OK, 지네릭타입 -> 원시타입 (경고)
objBox = (Box<Object>)box; //OK, 원시타입 -> 지네릭 타입(경고)
지네릭 타입과 넌 지네릭 타입간 형변환은 항상 가능하지만 경고가 발생한다.
대입된 타입이 다른 지네릭 타입 간에는 Object일지라도 형변환이 불가능하다.
Box<? extends Object> wBox = new Box<String>();
와일드 카드를 사용하는 경우에는 형변환 가능하다. 와일드 카드 사용의 경우 반대의 형변환도 가능하지만 확인되지 않은 형변환 이라는 경고가 발생, 여러가지 타입이 들어 올 수 있기 때문이다.