본문 바로가기

Programming/Java

Generics

 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