자바의 제네릭

MD Aminul Islam 2023년10월12일
  1. 제네릭이 Java에서 유형을 보장하는 방법
  2. Java의 제네릭 메서드를 사용한 예
  3. Java의 일반 클래스를 사용한 예
자바의 제네릭

클래스에 대한 객체의 일반 유형을 선언할 때 해당 유형의 안전성을 제공하는 기능이 포함되어 있지 않습니다. 그러나 제네릭을 사용하여 개체에 이 안전 기능을 쉽게 추가할 수 있습니다.

Java에서 사용할 수 있는 제네릭에는 두 가지 종류가 있습니다. 첫 번째는 제네릭 메서드이고 두 번째는 제네릭 클래스입니다.

제네릭 메서드는 형식 매개변수를 포함하고 실제 형식이 이러한 매개변수를 인용하므로 보다 일반적인 방법으로 메서드를 사용할 수 있습니다.

반면 제네릭 클래스는 대부분 비제네릭 클래스와 비슷합니다.

그러나 유일한 차이점은 유형 매개변수에 대한 섹션이 있다는 것입니다. 게다가 여러 매개변수를 사용할 수 있습니다.

이 기사에서는 Java의 제네릭에 대해 설명합니다. 또한 제네릭을 설명하고 이러한 코드를 부분적으로 설명하는 예제를 사용하여 주제에 대해 논의할 것입니다.

제네릭이 Java에서 유형을 보장하는 방법

제네릭 클래스가 프로그램에서 입력을 보장하는 방법에 대해 논의하겠습니다. 프로그램을 생성하고 컴파일하려고 하면 Generic 클래스가 컴파일 중에 유형의 오용이 발생했는지 여부를 확인합니다.

호환되지 않는 유형이 발견되면 오류가 표시되고 컴파일이 실패합니다.

Java의 제네릭 메서드를 사용한 예

아래 예제에서는 제네릭 메서드의 구현을 볼 수 있습니다. 코드는 다음과 같습니다.

class GenericMethod {
  // Declaring a generic method
  static <T> void MyDisplay(T data) {
    System.out.println("Your input is: " + data);
  }

  // Our controlling method ( Main method )
  public static void main(String[] args) {
    // Calling a generic method with an Integer argument
    MyDisplay(17);

    // Calling a generic method with a String argument
    MyDisplay("This is a string");

    // Calling a generic method with a double argument
    MyDisplay(16.0);
  }
}

위의 예에서 각 줄의 목적에 대해 이미 설명했습니다. 이제 위의 코드 예제를 실행하면 아래와 같은 출력이 표시됩니다.

Your input is: 17
Your input is: This is a string
Your input is: 16.0

Java의 일반 클래스를 사용한 예

아래 예에서 일반 클래스의 구현을 볼 수 있습니다. 여기에서 제네릭 클래스의 이름은 <T> 유형의 GenericClass입니다.

코드는 다음과 같습니다.

class GenericClass<T> {
  // Declaring a "T" type object
  T MyObj;
  GenericClass(T MyObj) {
    this.MyObj = MyObj;
  } // Creating a constructor
  public T getObject() {
    return this.MyObj;
  }
}

// Our controlling method ( Main method )
class Main {
  public static void main(String[] args) {
    // Declaring an instance of Integer type
    GenericClass<Integer> IntObj = new GenericClass<Integer>(19);
    System.out.println("The number is: " + IntObj.getObject());

    // Declaring an instance of String type
    GenericClass<String> StrObj = new GenericClass<String>("This is a string.");
    System.out.println(StrObj.getObject());
  }
}

위의 예에서 각 행의 목적에 대해 이미 주석을 달았습니다. 이제 위의 코드 예제를 실행하면 아래와 같은 출력이 표시됩니다.

The number is: 19
This is a string.

여기서 중요한 점은 매개변수 유형으로 int, char, float 또는 double과 같은 프리미티브를 사용할 수 없다는 것입니다.

여기에서 공유되는 코드 예제는 Java로 되어 있으며 시스템에 Java가 포함되어 있지 않은 경우 환경에 Java를 설치해야 합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - Java Generics