제네릭 만들기
1. 제네릭을 직접 만들 수 있고 요소타입을 가변적으로 놔둘 수 있다.
ex) MyClass<T>, GStack<T>
2. 쓰일 타입매개변수는 나중에 구체화할 수 있다.
ex)
public class MyClass<T> {
T val;
void set(T a) { val = a; }
T get() { return val; }
}
MyClass<String> s = new MyClass<String>(); // 제네릭 타입 T에 String 지정
s.set("hello");
System.out.println(s.get()); // "hello" 출력
cf) 타입 매개변수로 나타내는 객체 생성(x) ex) T a = new T();
3. 제네릭 클래스 또는 제네릭 인터페이스의 배열은 불가능하다.
ex)
GStack<Integer>[] gs = new GStack<Integer>[10]; (x)
4. 제네릭 타입의 배열생성(객체생성)도 불가능하다.
ex)
T[] a = new T[10]; (x)
5. 배열 생성 후 실제 사용할 때 캐스팅은 가능하다.
ex)
return (T)stck[tos]; // 타입 매개 변수 T타입으로 캐스팅
6. 타입 매개변수 배열 생성은 불가능하지만 레퍼런스는 가능하다(인터페이스같이)
ex)
public void myArray(T[] a) {....} (o)
7. 제네릭 메소드 생성
'Programming > Java' 카테고리의 다른 글
12장. 자바 스레드 기초 (0) | 2020.06.18 |
---|---|
9장. 자바의 이벤트 처리 (0) | 2020.06.17 |
7장. 컬렉션과 제네릭 #3 HashMap 컬렉션, LinkedList 컬렉션 (0) | 2020.06.16 |
7장. 컬렉션과 제네릭 #2 ArrayList 컬렉션, Iterator 인터페이스 (0) | 2020.06.16 |
7장. 컬렉션과 제네릭 #1 개요, Vector 컬렉션 (0) | 2020.06.15 |
댓글