ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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. 제네릭의 장점

    1. 타입을 안정성을 제공(Class Cast Exception - 형변환 에러를 미연에 방지)
    2. 타입 체크와 형변환을 생략할 수 있어서, 코드가 간결해짐
    3. 런타임에 발생할 수 있는 타입 에러를 컴파일 전에 검출한다.

    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);
        }
      }
    }

     

    -> 실행 결과

    댓글

Designed by Tistory.