Java/자바 정리
119. 타입을 자유롭게! – 제네릭 클래스 만들기
코딩하는냥이
2025. 5. 15. 10:07
반응형
이번 글에서는 클래스 정의 시 타입을 고정하지 않고,
사용하는 시점에 타입을 지정할 수 있도록 만드는 제네릭(Generic) 클래스를 배워봅니다.
같은 클래스라도 다양한 타입에 유연하게 대응할 수 있어 코드의 재사용성이 크게 향상됩니다.
📌 예제 코드
package ch13.sec01;
public class Box<T> {
public T contesnt; // 제네릭 타입 필드
}
package ch13.sec01;
public class GenericExample {
public static void main(String[] args) {
Box<String> box1 = new Box<>();
box1.contesnt = "Hello"; // 문자열 저장
String str = box1.contesnt; // 타입 캐스팅 없이 바로 사용
System.out.println(str);
Box<Integer> box2 = new Box<>();
box2.contesnt = 100; // 정수 저장
int val = box2.contesnt; // 자동 언박싱
System.out.println(val);
}
}
💻 실행 결과
Hello
100
💬 코드 설명
- Box<T> 클래스는 타입 매개변수 T를 사용하는 제네릭 클래스입니다.
- T는 클래스를 사용할 때 실제 타입으로 대체됩니다.
- Box<String>은 T가 String으로, Box<Integer>는 T가 Integer로 지정됩니다.
- box1.contesnt는 문자열이고, box2.contesnt는 정수이기 때문에
형 변환 없이도 타입 안정성이 보장됩니다. - 기존에는 Object를 사용해 여러 타입을 처리했다면,
제네릭을 쓰면 불필요한 형 변환을 줄이고 컴파일 타임에 오류를 방지할 수 있습니다.
💡 포인트 정리
- 제네릭(Generic)은 클래스나 메소드 내부의 데이터 타입을 외부에서 지정할 수 있도록 해주는 문법입니다.
- T, E, K, V 등은 제네릭에서 자주 쓰이는 타입 매개변수 이름입니다.
- 사용 시 타입이 고정되므로 타입 안전성(Type Safety) 확보
- 컴파일 시점에 타입 체크가 가능하여, 형 변환 오류를 줄일 수 있습니다.
📌 정리하자면, 제네릭은 클래스나 메소드를 다양한 타입에 대해 재사용 가능하게 만들어주는 자바의 핵심 기능입니다.
특정 타입에 종속되지 않으면서도, 타입 안정성을 확보하고 형변환 오류를 방지할 수 있어
실무에서 매우 자주 활용됩니다.