제네릭(Generic)
데이터의 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미합니다.
객체<타입>객체명 = new 객체<타입>();
다음과 같이 선언하여 사용합니다.
제네릭을 사용하면 잘못된 타입을 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.
클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.
비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.
다양한 타입의 데이터를 저장하고 관리하기 위해서입니다. 예를 들어, ArrayList 클래스는 배열을 이용하여 데이터를 저장하며, Object 타입으로 모든 데이터를 다룰 수 있습니다. 그러나 이렇게 Object 타입으로 데이터를 다루면, 런타임 시점에서 데이터 타입을 체크하기 어렵기 때문에, 데이터 타입이 일치하지 않을 경우에는 런타임 에러가 발생할 수 있습니다. 따라서, 제네릭을 사용하여 ArrayList 클래스를 정의하면, 데이터 타입이 일치하는지 컴파일 시점에서 체크할 수 있으며, 코드의 안정성을 높일 수 있습니다.
즉, 제네릭을 사용하면 컴파일 시점에서 타입 안전성을 보장할 수 있으며, 다양한 타입의 데이터를 다룰 수 있는 유연한 코드를 작성할 수 있습니다. 컬렉션 클래스에서 제네릭을 사용하면, 데이터 타입을 명확하게 지정할 수 있으며, 코드의 안정성과 유지보수성을 높일 수 있습니다.