[Item28] 배열 : 제네릭 = 공변 : 불공변
Generics는 raw-type Collection, 배열을 사용할 때의 문제를 해결하기 위해 나왔다, 그 문제가 어떤 문제일까? 바로 Runtime 시 발생할 수 있는 ClassCastException을 컴파일 에러로 잡아준다는 것이다 알고리즘 문제를 풀 때는 보통 Collection 보다 배열을 쓰게 되는데 성능 차이가 꽤 크기 때문이다 이와 반대로 웹 개발에는 배열을 쌩으로 쓰는 일은 흔치 않고 컬렉션을 사용한다 성능 차이가 나는데도 컬렉션을 쓰는 이유는 컬렉션과 배열의 차이로 기인한다 컬렉션을 사용할 때, 주로 raw-type을 사용하지 않고 Generics와 버무려서 사용하는데 Generics는 invariant, 불공변이다 제네릭을 사용하는 경우 다른 타입으로 지정하면 상속 관계와 상관없이 ..
Java/Effective Java
2022. 3. 7. 01:11