본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.



제네릭은 주로 자바에서 제공하는 컬렉션에서 주로 사용되는 것을 보았을 것이다.

즉 클래스 내부에서 사용할 데이터 타입을 인스턴스로 생성할 때 확정해주고 타입 체크를 할 때 Generic을 사용한다.


제너릭을 사용할려면 선언하려는 클래스 옆에 <> 안에 데이터 타입을 사용하고 <> 안에 지정된 데이터 타입으로 T의 데이터 타입이 결정된다. 




말로는 잘 모르니 그냥 코드로 설명을 하자면 아래와 같은 Person Class를 선언한다.

Person 옆에 <T> 데이터 타입을 선언하였고 클래스 안에 T 데이터 타입인 name 프로퍼티가 생성된다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Person<T> {
    public T name;
    private String age;
    
    public String getAge() {
        return age;
    }
    
    public void setAge(String age) {
        this.age = age;
    }
    
    public T getName() {
        
        return name;
    }
    
    public void setName(T name) {
        this.name = name;
    }
}




아래 메인에서 Person 객체 2개를 만들었는데 하나는 T의 데이터 타입을 String으로, 나머지 하나는 T의 데이터 타입을 StringBuilder로 선언하였다.

선언된 데이터 타입으로 setter함수를 만든 부분을 유심히 보면 setName을 할 때 선언된 데이터 타입으로만 setter가 되는 것을 확인할 수 있다.



1
2
3
4
5
6
7
8
9
10
11
12
public class GenericTest {
    public static void main(String[] args) {
        Person<String> p1 = new Person<String>();
        p1.setName("String ktko");
        
        Person<StringBuilder> p2 = new Person<StringBuilder>();
        p2.setName(new StringBuilder("StringBuilder ktko"));
        
        System.out.println(p1.getName());
        System.out.println(p2.getName());
    }
}




제너릭이 어떻게 사용되는지 간략하게 끄적였는데

제너릭을 왜 사용하는지, 어떻게 사용하는지에 대해서 다시 정리를 해서 포스팅하겠드아.