[Item29] 이왕이면 제네릭 써라
개발자라면 응당 '이왕이면 다홍치마' 대신 '이왕이면 제네릭이다'라고 말해야 한다 왜 제네릭인가? 런타임에 터질 ClassCastException을 컴파일 시점에 에러로 띄워주기 때문이다 일반 클래스를 type-safe 하도록 제네릭 클래스를 만들려면 타입 매개변수를 주면 된다, Stack -> Stack 단 이 클래스 내에서 배열을 사용한다면 컴파일 에러나 비검사 형 변환 경고가 뜨는데 이를 막기 위한 방법으로 두 가지가 있다 1. 주어진 타입으로 배열을 만드려고 할 때 Object[]로 만들고 그 후에 타입을 사용해 명시적인 형 변환을 때려준다 단 컴파일러는 런타임에 해당 라인이 안전함을 보장할 수 없기 때문에 개발자가 안전함을 확실하게 알 때만 사용해야 한다 이를 무시하면 런타임에 터질 에러를 막아..
Java/Effective Java
2022. 3. 7. 22:08