본문 바로가기
🗂️CS & Other/자료구조 (data structure)

[자료구조] 제네릭(generic)

by inbeom 2023. 8. 28.
728x90

💡 제네릭 자료형 정의

클래스에서 사용하는 변수의 자료형이 여러개 일 수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고, 추후 해당 클래스를 사용할 때 지정함.

  • 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식
  • 제네릭은 매개변수화된 유형을 의미한다.
  • 이것은 Integer, String, ...등 및 사용자 정의 유형의 메서드, 클래스 및 인터페이스에 대한 매개변수가 될 수 있도록 하는 것이다.
  • 제네릭을 이용하면 다양한 데이터 유형을 작동하는 클래스를 생성할 수 있다.

 

제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다.

public class GenericPrinter<T> {
	private T material;

	public void setMaterial(T material) {
		this.material = material;
	}

	public T getMaterial() {
		return material;
	}
}

 

제네릭 메서드

  • 제네릭 클래스가 아니어도 내부에 제네릭 메서드는 구현하여 사용 할 수 있다.
  • public <자료형 매개 변수> 반환형 메서드 이름(자료형 매개변수.....) { }
public class Point<T, V> {
	T x;
	V y;

	Point(T x, V y){
		this.x = x;
		this.y = y;
	}

	public T getX() {
		return x;
	}

	public V getY() {
		return y;
	}
}
728x90