Java Generic

개미는뚠뚠·2023년 4월 8일
0

java

목록 보기
5/10
post-thumbnail

나는 현재 회사에 자바를 모르는 상태로 입사를 했고, 일단 개인적인 공부로 어느정도 개발을 진행하고 있다. 그러나 다른 개발자들의 코드를 보면 생소한 자바 문법들이 있었고, 주말을 활용하여 이것에 대해 공부를 해보자고 생각했다. 그것이 바로 Generic 타입이다.


Generic이란?

구글링으로 찾아본 내용을 요약하면 제네릭의 직역은 '일반적인'이라는 뜻이다.
데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법 이라고 정의할 수 있는데 내가 처음 생각했던 것은 타입스크립트의 'any'와 비슷한 개념인가? 싶었다.

암튼 자세히 알아보자!
우리는 자바에서 코드를 짤 때 다음과 같이 <> 안에 타입을 명시해주는데

ArrayList<Integer> list1 = new ArrayList<Integer>();
ArrayList<String> list2 = new ArrayList<Integer>();

만약 String 타입과 Integer 타입도 지원하고 싶고 그 외 다른 타입을 지원하고 싶다. 그러면 각 타입에 따라서 클래스를 생성할 것인가? 그건 너무 비효율적이라는 생각이 들며, 이러한 문제를 해결하기 위해 제너릭(Generic)을 사용한다.

한마디로 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 말하며, 특정 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 타입이라는 것이다.

Generic(제네릭)의 장점

  1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있다.

  2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없다. 즉, 관리하기가 편하다.

  3. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다.

Generic(제네릭)의 종류

제너릭 타입의 종류는 다음과 같다.

<T>	- Type 
<E>	- Element 
<K>	- Key
<V>	- Value
<N>	- Number

타입 파라미터는 제네릭 클래스/인터페이스에 사용되며 "타입이 정해지지 않은" 파라미터를 의미하는데 대부분 참조 타입의 경우 T, 요소의 경우 E(Element) , 키를 나타낼 경우 K(Key), 값을 나타낼 경우 V(Value) 등을 사용한다.


사용방법은 너무 많아서 블로그에 정리하기에는 힘들 거 같다는 생각이 들었다...어차피 나만 보는 블로그인데 뭐,,,😂
정리는 여기서 끝내고 나머지는 실무에서 자주 활용에서 몸에 익혀야겠다!!!!!!! 끗!!!

0개의 댓글