[꼼꼼한 개발자] 꼼코더
[JAVA] - 제네릭이란?(Generic) 간단하고 쉽게 이해하기 (제네릭의 장점) 본문
반응형
👨🏻🏫 간단정리
- ‘<>’가 들어간 자바 코드.
- ‘<>’ 안에 타입 파라미터가 위치한다.
- 클래스, 인터페이스, 메소드를 정의할 때 타입을 파라미터로 사용하여 컴파일 시 구체적인 타입이 결정될 수 있도록 도와주는 것.
❓ 제네릭(Generic)이란?
- 자바 5 부터 새로 추가된 기능.
- ‘<>’ 안에 타입 파라미터가 위치
- 컬렉션, 람다식(함수적 인터페이스), 스트림, NIO에서 널리 사용된다.
- 클래스, 인터페이스, 메소드를 정의할 때 타입을 파라미터로 사용하여 컴파일 시 구체적인 타입이 결정될 수 있도록 도와줍니다.
- 제네릭은 클래스와 인터페이스만 적용되기 때문에 자바 기본 타입(Primitive Type)은 사용할 수 없다.
😊 제네릭의 장점
1️⃣ 컴파일 시 강한 타입 체크를 할 수 있다.
- 컴파일 시 에러를 다 도출해내기 때문에 실행 중에 일어나는 에러(RuntimeException) 를 방지할 수 있습니다.
*// List Integer 타입으로 제네릭 타입 적용*
List<Integer> list = new ArrayList();
list.add(1);
list.add("5"); // 컴파일 ERROR > 'String' 타입 x
2️⃣ 타입 변환을 제거한다.(casting)
- 제네릭을 사용하지 않는 경우 불필요한 타입 변환이 필요.
- 따라서 프로그램 성능에 좋지 않은 영향을 미침.
List list = new ArrayList();
list.add(1);
// 강제 형 변환 필요
Integer number = (Integer) list.get(0)
👀 제네릭을 사용하지 않는다면?
- 물론 제네릭을 사용하지 않으면 다음과 같이 모든 종류의 객체를 저장할 수 있다.
- 제네릭을 사용하지 않고 값을 추가하면 Object 형태로 변환 (타입변환) 되어 List에 쌓인다..
- 하지만 읽어올 때에도 타입 변환이 발생하게 된다..
List list = new ArrayList();
list.add(1);
list.add("5");
list.add(0.1);
// 값 저장하기
// 모든 타입의 조상인(모든 타입 수용) Object로 형변환
Object o1 = list.get(0);
Object o2 = list.get(1);
Object o3 = list.get(2);
// 값 읽기
// 각 값의 타입의 알맞게 Wrapper 클래스로 형변환
Integer num = (Integer) o1;
String str = (String) o2;
Long L = (Long) o3;
'간단하고 쉽게 > JAVA' 카테고리의 다른 글
[JAVA] - Optional이란? 간단하고 쉽게 이해하기 (Optional 객체 생성 예제) (2) | 2023.03.09 |
---|---|
[JAVA] - HashMap, LinkedHashMap, TreeMap, Hashtable 차이점 간단하고 쉽게 이해하기 (0) | 2022.12.22 |
[JAVA] - SDK, JDK 간단하고 쉽게 이해하기 (0) | 2022.12.20 |
[JAVA] - Java SE, Java EE 차이 간단하고 쉽게 이해하기(자바 플렛폼의 종류) (0) | 2022.12.20 |
[JAVA] - Java Beans(자바 빈즈) 간단하고 쉽게 이해하기 (0) | 2022.12.20 |
Comments