-
2022_07_20 컬렉션 클래스에서 제네릭을 사용하는 이유태투'S/SIL 2022. 7. 20. 01:18
Answer :
컬렉션 클래스에 저장되는 인스턴스 타입을 제한하여 런타임에 발생할 수 있는 잠재적인 모든 예외를 컴파일 타임에 잡아 낼 수 있어서 사용한다.
1. 제네릭이란?
List<Interger> list1 = new ArrayList<>(); List list2 = new ArrayList<>(); Map<String, String> map = new ArrayList<>();
위의 코드와 같이 꺽쇠 안에 클래스 타입이 명시된 패턴의 형식
이걸 제네릭(Generic) 이라고 부르며, 제네릭 파라미터는 꺽쇠 안에 포함하여 전달한다.
1-1. Java에서 제네릭이란?
- 컴파일 시 타입 체크를 해주는 기능(compile-time type check) JDK 1.5
- 객체 타입에 안정성을 높이고 형변환의 번거로움을 줄여줌
2. 제네릭의 장점
- 타입을 안정성을 제공(Class Cast Exception - 형변환 에러를 미연에 방지)
- 타입 체크와 형변환을 생략할 수 있어서, 코드가 간결해짐
- 런타임에 발생할 수 있는 타입 에러를 컴파일 전에 검출한다.
3. 제네릭스 적용 예시
package com.taetoo.genericsStudy; import java.util.ArrayList; import java.util.List; public class MainClass{ public static void main(String[]args){ List noGeneriucsList = new ArrayList(); List <String> strList = new ArrayList<>(); noGenericsList.add("aaaaaa"); noGenericsList.add(1111); // 제네릭을 지정하지 않아 어떤 데이터 형식인지 판단하려면 입력된 곳을 찾아가야 알 수 있다. try{ for(int i = 0; i < noGenericsList.size();i++){ String str = (String) noGenericsList.get(i); System.out.println("index["+i+"]데이터:" + str); } } catch(exception e){ System.out.println("오류가 발생하였습니다."); } for(int i = 0; i < strList.size();i++){ String str = strList.get(i) System.out.println("index["+i+"]데이터:" + str); } } }
-> 실행 결과
'태투'S > SIL' 카테고리의 다른 글
2022_07_29 JVM 이란? (0) 2022.07.29 2022_07_20 IoC가 무엇인가요? (0) 2022.07.20 2022_07_08 Process 와 Thread (0) 2022.07.08 2022_06_21 Spring Web MVC의 Dispatcher Servlet의 동작 원리에 대하여 (0) 2022.06.21 2022_06_21 JPA는 무엇인가? (0) 2022.06.21