교육과정 기록/☕ Java

Generic (제네릭)

춘식이왔엉 2022. 5. 11. 21:49

 * 제네릭 타입의 종류 3가지 *
   (1) 제네릭 클래스
   (2) 제네릭 인터페이스
   (3) 제네릭 메소드

  * 제네릭 타입 파라미터에, "구체적인 참조타입(=구체타입)"을 언제 지정!?

        (1) 제네릭 타입(=클래스/인터페이스/메소드) "선언할 때"에는,
            타입파라미터 T, U, R, ...... 를 단문자로 표시

         (2) 제네릭 타입을 "사용"할 때, "구체타입 지정" (*****)
              가. new 연산자로, 제네릭타입의 "객체를 생성할 때"
              나. 제네릭 타입을 메소드/생성자의 매개변수의 타입으로 지정(선언)할 때!
                 ex) String name = "Yoseph";
              다. 제네릭 메소드를 호출할 때, "구체타입명을 인자로 전달"



*제네릭을 사용하는 코드의 이점

컴파일 시 강한 타입 체크 가능

- 실행 시 타입 에러가 나는 것을 방지 (컴파일 시에 미리 타입을 강하게 체크해서 에러 사전 방지)

 

* 제네릭 타입이란?

- 타입을 파라미터로 가지는 클래스와 인터페이스 

- 선언 시, 클래스 또는 인터페이스 이름 뒤에 '<>' 부호 붙이고 그 사이에 타입 파라미터 위치

- 타입 파라미터 : 일반적으로 대문자 알파벳 한 문자로 표현

  (개발 코드에서는 타입 파라미터 자리에 구체적인 타입 지정)

 

* 멀티 타입 파라미터

제네릭 타입은 두 개 이상의 타입 파라미터 사용 가능

- 각 타입 파라미터는 콤마로 구분

- 자바 8부터는 다이아몬드 연산자 사용해 간단히 작성과 사용 가능 

 


 

* 제네릭 메소드

- 매개변수 타입과 리턴 타입으로 타입 파라미터를 갖는 메소드

- 제네릭 메소드 선언 방법 

   → 리턴 타입 앞에 "<>" 기호를 추가하고 타입 파라미터 기술

   → 타입 파라미터를 리턴 타입과 매개변수에 사용

- 제네릭 메소드 호출하는 두 가지 방법

   → 리턴타입 변수 = <구체적타입> 메소드명(매개값);

       리턴타입 변수 = 메소드명(매개값);

   → Box<Integer> box = <Integer>boxing(100);

       Box<Integer> box = boxing(100); 

 

⚾예제

 

 

⚾예제