[ 1. Generic(제너릭) - 기본 개념 ]

 

1. 기본 Generic

    - 어떤 자료형이 들어갈지 정의하는 것

    - 어떤 자료형이 들어 갈지 명시적으로 정의하고, get, set시 자료형을 제한할 수도 있다.

 

2. 기본 Generic 사용예

      1. Generic 미 지정 시 : 매번 Casting을 해야 되므로 성능에 않좋다.

        

 

     2. <String>이라는 Generic 지정 시  : 요소를 찾아올 때 Casting이 필요 없어 프로그램 성능이 향상 된다.

        

 

10. Generic Type 정의

    - 제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다.

    - 여러 형식에 맞게 재사용할 수 있는 코드를 정의하는 기술이다.

    - Generic 코드를 정의 할 때는 가상의 형식 이름을 <가상형식이름>처럼 정의하고 사용하는 곳에서 어떠한 형식에 관한 코드를 사용할 것인지 명시하여 사용하는 기법이다.

     - 그래서 클래스 내부에서 사용할 데이터 타입을 미리 정의하지 않고

        외부Class에서 사용시점에 지정하는 기법을 의미한다.

 

11. Generic Type 종류

   - E : Element

   - K : Key

   - V : Value

   - N : Number

   - T : Type

   - S, U, V etc - 2nd, 3rd, 4th types

 

12. Generic Type 와일드카드

   - 정의 : 와일드카드는 알 수 없는 자료형일 때 작성하는 Generic type이다.

   - <?> : 모든 객체 자료형, 내부적으론 Object로 인식 한다.

   - <? super [자료형]> : 명시한 자료형의 상위 객체를 의미한다.

                                           내부적으론 Object로 인식한다.

   - <? extends [자료형]> : 명시한 자료형을 상속한 하위 객체를 의미한다.

                                               내부적으론 명시한 자료형으로 인식한다.

 

 

11. Generic Type 사용예

    [ Person.java ]

     class Person<T>{  //Generic Type에 T 를 기술하여 데이터 타입을 지정하지 않는다.

           public T info;

     }

 

    [ User.java ]

     ....

     Person<String> p1 = new Persion<String>();  //instance화 할때 생성자에 데이터 타입 지정

     Person<StringBuilder> p2 = new Person<StringBuilder>();  //instance화 할때 생성자에 데이터 타입 지정

Posted by 농부지기
,