본문 바로가기
공부방/자바프로그래밍

자바 일반화 (Generic, 제네릭)

by 오후 네시 2021. 2. 19.

일반화(Generic)

 

1) 다양한 자료형의 데이터를 처리하기 위해서는 일반화 작업이 필요함

 

하는 일은 비슷한 데 자료형이 달라서 클래스나 메소드를 여러 개 만들어야 할 경우

 

i) 오버로딩이나 오버라이딩을 해야만 한다.

 

ii) 그런데 이렇게 안하고 자료형을 Object 타입으로 선언해서 하는 방법도 있다.

-> 이 방법은 내부적으로 형변환이 자주 일어난다는 단점이 있다.

 

iii) 그래서 더 좋은 방법이 없을까 해서 나온 방법이 일반화이다.

2) 일반화 하는 방법

 

public class Type3<T>{ //자료형이 미정

T t;

public void setT(T t){

  this.t = t;

}

public T get(){

  return t;

}

public static void main(String[] args){

  //컴파일할 때 자료형을 고정시킴

  Type3<String> t=new Type3<String>();

  t.setT(“100”);

  System.out.println(t.getT());

}

}

 

public class Type3<T>

- <T>에서 T대신 다른 임의의 문자나 문자열을 사용해도 된다.

이 단계에서는 아직 T의 자료형이 무엇인지 정해지진 않았다.

 

Type3<String> t=new Type3<String>();

- <T>의 자료형이 String으로 정해짐에 따라 위 소스에서 T의 자리에는 String으로 대체되어 컴파일 된다.

- Type3<String> t=new Type3<>(); //-> 이렇게 써도 된다.

 

일반화된 하나의 메소드에 여러 자료형을 처리하고자 할 때에는

위의 String 자리에 <Object>를 쓰면 된다.

요렇게...

Type3<Object> t=new Type3<Object>();



댓글