<aside>

이하의 문서는 Effective JAVA 3E에서 제네릭과 관련된 문서를 정리한 내용입니다.

</aside>

1. 로 타입은 사용하지 말것.

<aside> 💡

이하는 dev.java의 제네릭스 문서를 선택적으로 정리한 내용입니다.

</aside>

https://dev.java/learn/generics/intro/

Introducing Generics

제네릭은 클래스, 인터페이스, 메서드를 정의할 때(이 세가지에 쓰인다!) 타입(클래스, 인터페이스)를 파라미터로 사용할 수 있도록 한다.

💡 제네릭도 어딘가에 선언되어야 하는데, 그 선언되는 위치를 기준으로 클래스, 인터페이스, 메서드에 쓰인 제네릭으로 구별한다.

즉 타입을 변수화해, 동적으로 지정할 수 있도록 한다.

이렇게 변수화된 타입을 타입 매개변수, 형식 매개변수, 타입 파라미터… 등등 라고 한다.

제네릭을 사용하는 것에 관한 이점을 간단하게 말하면 다음과 같다.

  1. 컴파일 타임에 더 강력한 타입 검사가 수행됨.
  2. 타입 캐스팅을 따로 하지 않아도 된다.
  3. 타입안정성이 뛰어난 제네릭 기반 알고리즘을 작성 가능.

관습상 사용되는 타입 매개변수

E: Element