발취 : http://palpit.tistory.com/667

Posted by 농부지기
,

[ 2. Generic (제너릭) 멀티 타입 파라미터 ]

 

 

1. 정의

    - 제네릭 타입은 두 개 이상의 멀티 타입 파라미터를 사용할 수 있는데, 이 경우 각 타입 파라미터를 콤마로 구분한다.

    - 구문 : (class<K, V, ...>, interface<K, V, ...>)

 

2. 예제 설명

   - 다음 예제는 Product<T, M> 제네릭 타입을 정의하고 ProductExam 클래스에서 Product<Tv, String> 객체와 Product<Car, String> 객체를 생성한다. 그리고 Getter와 Setter를 호출하는 방법을 보여준다.

 

3. 예문

   a. Product.java

      

 

   b. Tv.java

       public class Tv { .. }

 

   c. ProductMain.java

       

   * 실행결과

      generic.Tv:스마트 TV

      generic.Car:Das Auto

 

4. java7부터 선언방법 간소화

    a. 제네릭 타입 변수 선언과 객체 생성을 동시에 할 때 타입 파라미터 자리에 구체적인 타입을 지정하는 코드가 중복해서 나와 다소 복잡해질 수 있다.
       자바 7부터 제네릭 타입 파라미터의 중복 기술을 줄이기 위해 다이아몬드 연산자 <>를 제공한다.
       자바 컴파일러는 타입 파라미터 부분에 <> 연산자를 사용하면 타입 파라미터를 유추해서 자동으로 설정해 준다.

    b. 자바 6 이전 버전에서 사용한 제네릭 타입 변수 선언과 객체 생성 코드

        - Product<Tv, String> product<Tv, String>();

    c.  자바 7부터는 다이아몬드 연산자를 사용해서 다음과 같이 간단하게 작성할 수 있습니다.

        - Product<Tv, String> product<>();

 

출처 : http://palpit.tistory.com/666

Posted by 농부지기
,

[ 2. Generic (제너릭) Type - 사용예문2 ]

 

* 1. Generic 기본 개념 및 기본 예제

 

1. 일반적인 개발방법

    - 개발방법 : Box 클래스의 필드 타입이 Object 인데, Object 타입으로 선언한 이유는 필드에 모든 종류의 객체를 저장하고 싶어서다.

    a. Box.java

       

 

   b. Apple.java

      

 

   c. BoxMain.java

      

 

   d. 단점

      - 이와 같이 Object 타입을 사용하면 모든 종류의 자바 객체를 저장할 수 있다는 장점은 있지만, 저장할 때 타입 변환이 발생하고, 읽어올 때도 타입 변환이 발생한다.
        이러한 타입 변환이 빈번해지면 전체 프로그램 성능에 좋지 못한 결과를 가져올 수 있다.

 

2. Generic Type으로 개발방법

    - 개발방법 : 타입 파라미터 T를 사용해서 Object 타입을 모두 T로 대체했다.

                       T는 Box 클래스로 객체를 생성할 때 구체적인 타입으로 변경된다.                       

    a. Box.java

       

 

    b. BoxMain.java

        

 

    -> 최종 결과

        Hi

        11

 

    * 참고, 타입 파라미터 T는 String 타입으로 변경되어 Box 클래스의 내부는 다음과 같이 자동으로 재구성 된다.

      

 

참고URL : http://palpit.tistory.com/665

Posted by 농부지기
,