Closed gmelon closed 1 year ago
Item 28에서 알려주네요 머쓱
List<Object>
가 List<String>
을 받게 되면 대입 당시에는 문제가 되지 않고 또 String 원소만 넣고 뺸다는게 보장이 되면 문제가 없겠지만,
List<Object>
에 대입된 실제 인스턴스 List<String>
에 예를 들어 Integer 원소를 넣게 되는 상황은 말이 안 되는거기 때문에 (배열에서는 이게 가능하고 그래서 이런 상황에 ArrayStoreException 이 발생) 애초에 컴파일이 되지 않도록 막아둔 거군용
네! 저도 살짝 이해가 안된채로 넘어갔는데 28에서 아하..! 했어요!!!!
List<String>
이List<Object>
의 하위타입이 되지 않도록 제네릭을 설계한 이유가 뭘까요?제네릭 공부할 때부터 들었던 의문인데 String은 Object 의 하위 타입이므로 List