Generics
제네릭은 주로 자바 컬렉션에서 사용되고 있다. 제네릭으로 자바의 컬렉션 자료구조의 타입을 Object로 명시하여 사용할 수 있다.
예를 들어 Integer 타입의 ArrayList를 사용하려면 다음과 같이 사용하면 된다.
ArrayList<Integer> = new ArrayList<Integer>();
이렇게 Integer나 String 등 기본적인 타입을 컬렉션에서 제네릭으로 선언 할 수 있다.
하지만 이것보다 직접 만든 Class를 제네릭으로 사용 할 수 있다는 점이 큰 장점이다.
다음과 같이 하나의 getter/setter 클래스를 만든다.
class MyObject{
private int id;
private String pass;
public void setId(int id){
this.id = id;
}
public void setPass(String pass){
this.pass = pass;
}
public int getId(){
return id;
}
public String getPass(){
return pass;
}
}
이렇게 만든 객체를 다음과 같이 사용할 수 있다.
ArrayList<MyObject> list = new ArrayList<MyObject>();
그리고 객체에 접근 할 수 있다.
int id = list.get().getId;
여기까지 자바 컬렉션에 제네릭을 사용하는 방법이다.
다음은 제네릭클래스를 만들어 내가 원하는 타입의 객체를 처리하는 방법이다.
public class MyObejct<T> {
private T t
public void set(T t){
this.t = t;
}
}
이렇게 사용하여 내가 원하는 객체 타입을 넘길수 있다.
위에 선언된 T는 제네릭의 타입 파라미터이다.
제네릭의 타입 파라미터 종류는
E - Element
K - key
N - Number
T - Type
V - value
등이 있다.
이렇게 제네릭을 사용하여 다음과 같이 재사용 할 수 있는 코드를 만들 수 있다.
'Programming > Java' 카테고리의 다른 글
JVM(JavaVirtualMachine) (0) | 2016.08.08 |
---|---|
Lambda (0) | 2016.08.04 |
HashMap VS HashTable VS ConcurrentHashMap (0) | 2016.05.21 |