[day14] java-basic : Generic
Generic
-
쉽게말하면 프로그램을 실행하는 중에 동적으로 타입을 체킹하기 위해서 만들어진 문법이다.
-
자료구조는 같은 타입의 데이터를 모아두는 것이 기본 목적이다.
-
자바의 Collection은 어떤 것은 데이터를 저장하는 것을 목적으로, 어떤 것은 데이터를 탐색하기 위한 목적으로 만들어졌기 때문에 따라서 여러가지 클래스로 나뉘어서 만들어진 것이다.
-
근데 자바에서는 객체자료형을 이용하면 데이터 타입이 무한하다.
-
컬렉션은 어떤 자료가 들어올지 모르니까 제어할 수 없다. 모든 자료형이 들어올 수 있도록 코드를 구성해야 한다.
-
모든 클래스의 상위클래스가 Object니까 자바 컬렉션은 Object타입으로 만들어져, 모든 데이터가 객체 형변환을 할 수 있도록 만들었다.
-
즉 모든 객체자료형을 처리하기 위해서 Object을 사용했었다.
-
근데 자료구조의 기본 목적이 같은 타입의 데이터를 모아두는 것인데, 누군가는 다른 타입의 데이터형을 사용할 수 있다.
-
이때 각 자료에 접근하려면 일일히 명시적 형변환을 해줘야 하는 번거로움이 발생한다.
-
이런 문제를 해결하기 위해 데이터 타입을 명시해둔 것이 제너릭이다.
-
<T>
으로 클래스를 작성하면 객체 생성할 때 작성한 데이터형으로 자동으로 명시적 형변환을 해준다. -
다른 데이터형을 사용하게 되면 컴파일 시점에 에러를 발생한다.