[JAVA] 제네릭 프로그래밍

Jan 03, 2024
[JAVA] 제네릭 프로그래밍
💡
genric(포괄적인) programming은 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법입니다.
클래스를 정의할 때, 클래스 안에서 사용되는 자료형을 구체적으로 명시하지 않고 기호(T)로 적고 객체를 생성할 때, 기호자리에 자료형을 적는 것입니다. 자료형클래스의 매개변수로 만든 것입니다.
 

제네릭 클래스 (generic class)

제네릭 클래스는 자료형(데이터 타입)을 변수로 표시한다. 타입 매개변수(Type Parameter)라고 부르고 <T>로 표시한다.
Example
class Box<T> { T data; } public class GenericEx01 { public static void main(String[] args) { Box<String> box1 = new Box(); // 문자열 객체 box1 생성 Box<Integer> box2 = new Box(); // 정수형 객체 box2 생성 box1.data = "1"; box2.data = 1; } }
Box객체를 생성할 때, T(타입 매개변수)와 클래스 내부의 data 멤버/변수는 사용될 자료형으로 대체된다.
 
Q. Object타입으로 선언할 수 밖에 없는 경우?
A. 개발자가 객체 생성을 하지 못할 때, 범용성이 높은 최상위 클래스 Object로 선언 하는 것입니다. 이후 데이터 타입을 다운캐스팅을 해야합니다. ex) 서버 풀링(Server Pooling) 시스템은 여러 대의 서버를 하나의 풀로 묶어서 관리하고, 클라이언트의 요청에 따라 자원을 할당하는 방식
 
 
Q. generic을 쓸 때는 언제?
A. 객체생성이(new)가 가능할 때는 generic을 사용합니다. Object타입의 변수를 사용하는 것보다 안전하고 사용하기 쉽기 때문입니다. 다운캐스팅 할 번거로움도 없습니다.
 
Share article

MiracleCoding