제네릭이란?

데이터 타입을 외부에서 정의하는 것이 제네릭이다  예를 들어보자

 

 

아래 코드가 있다고 가정하자  class 정용화 오른쪽에 "<>" 이런 모양이 있는 걸 확인할 수 있으면 그 안에는 T 라는 문자가 있다  정용화라는 클래스 안에는 firstName 과 LastName 이라는 변수들이 있지만 T라는 데이터 타입으로 선언 되어 있다.

package step1_01.print;


class 정용화<T> {
	
	T firstName  ;
	T LastName ;
	
}

public class 연습 {
	
	
	public static void main(String[] args) {
		
		
		
		정용화 <String> b = new 정용화<String>();
		
		
		b.firstName= "용화";
		
		System.out.println(b.firstName);
		
		
		b.LastName = 1;
		b.LastName = "1";
		
		System.out.println(b.LastName);
	}
}

class 연습에서 

정용화 클래스를 b라는 변수로 new 해서 객체를 생성했다 근데 다른점을 느겼을 것이다 <T>가 아니라 <String> 으로 new가 되었다

그렇다면 firstName 과 LastName  는 String 데이터 타입으로 정의가 된다. 이것이 변수가 선언된 클래스 안에서 데이터타입이 정해진것이 아니라 외부에서 데이터타입이 정해진 제네릭이다.

 

 

복사했습니다!