제네릭 (Generic)

han.user();·2023년 3월 17일
0
post-thumbnail

제네릭 타입(Generic type)은 클래스나 메소드에서 사용할 데이터 타입을 미리 정하지 않고,
실행 시점에 결정하는 방식을 말한다.
제네릭 타입을 사용하면 클래스나 메소드를 일반화하여, 다양한 데이터 타입에 대해 재사용할 수 있다.

Java에서 제네릭 타입은 "<>" 기호를 사용하여 표현하며, 다음과 같은 형태로 정의합니다.

class 클래스명<T> {
    T 변수명;
    T 메소드명() { ... }
    ...
}

위 코드에서 <T>는 제네릭 타입 매개변수로, T는 실제 사용할 데이터 타입을 나타내는 타입 변수이다.
이제 클래스나 메소드에서 데이터 타입을 지정할 때, T 대신 사용할 실제 데이터 타입을 지정한다

클래스명<데이터타입> 객체명 = new 클래스명<>();
객체명.메소드명(데이터);

위와 같이, 객체를 생성할 때 데이터 타입을 명시하고, 메소드를 호출할 때 데이터를 전달하면 제네릭 타입이 사용된 클래스나 메소드에서는 자동으로 타입 변환이 이루어진다.

제네릭 타입은 자바에서 많이 사용되는 기능 중 하나이다. 많은 클래스들이 제네릭 타입을 사용하여 타입 안정성(type safety)을 높이고, 코드의 재사용성과 유연성을 높이고 있다.


제네릭 타입을 사용하는 것은 코드의 가독성과 유지보수성을 높이는데 도움을 주지만,
코드의 길이나 복잡도를 높일 수 있다. 따라서, 상황에 따라 적절하게 사용하는 것이 중요하다.

제네릭 타입을 사용하는 경우의 장단점은 다음과 같다.

장점

  • 타입 안정성을 보장한다. 컴파일 단계에서 타입 체크를 하기 때문에, 런타임 시에 발생하는 오류를 줄일 수 있다.
  • 재사용성을 높인다. 제네릭 타입을 사용하여 다양한 데이터 타입에 대해 일반화된 코드를 작성할 수 있으며, 이를 다른 프로젝트에서 재사용할 수 있다.
  • 가독성을 높인다. 제네릭 타입을 사용하면 코드의 가독성이 높아지며, 타입 변환을 줄여 코드를 간결하게 작성할 수 있다.

단점

  • 코드의 길이나 복잡도를 높일 수 있다. 제네릭 타입을 사용하면 코드가 길어지고 복잡해질 수 있다.
  • 제네릭 타입을 사용하는 것이 적절하지 않은 경우도 있다.
    예를 들어, ArrayList 클래스에서는 제네릭 타입을 사용하지 않은 raw 타입을 사용하는 것이 더 적절한 경우도 있다.

따라서, 제네릭 타입을 사용할 때는 상황에 따라 적절하게 사용하는 것이 중요하다.

profile
I'm still hungry.

0개의 댓글