관리 메뉴

프로그래밍 삽질 중

제너릭(generic) 설명 및 문제 본문

과거 프로그래밍 자료들/자바(Java)

제너릭(generic) 설명 및 문제

평부 2021. 3. 8. 23:19

※ 제너릭의 필요성

- 일반화된 타입 매개 변수로 클래스나 메소드를 작성하는 기법

→ 하나의 코드로 모든 종류의 데이터 타입을 다룰 수 있음

→ 컴파일 할 때 타입을 점검하기 때문에 실행 도중 발생할 오류 사전 방지

→ 불필요한 타입 변환 없이 프로그램 성능 향상 

 

- 제너릭 문법

제너릭클래스 <적용할 타입> 참조변수 = new 제너릭클래스 <적용할 타입>();

 

- 제너릭 제약 

→ 기초타입(int, byte 등)을 제너릭 인수로 사용 불가

예) ArrayList<int> al = new ArrayList<int>(); 

→ 컴파일 오류 발생

 

[문제 예시]

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.ArrayList;
 
public class MyClass<String> {
    String val;
    void set(String a) {
        val = a;
    }
    String get() {
        return val;
    }
}
 
public class Generic {
 
    public static void main(String[] args) {
        //제너릭클래스 <적용할 타입> 참조변수 = new 제너릭클래스 <적용할 타입>();
        
        MyClass<String> s = new MyClass<String>();
        s.set("Hello");
        System.out.println(s.get());
        
        ArrayList list = new ArrayList();
        list.add("abc");
        //list.add(new Integer(5));
        
        for(Object obj : list) {
            System.out.println(obj);
        }
 
    }
 
}
cs