ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Java ] 제네릭 ( Generic )
    면접 준비 2020. 5. 25. 17:23

     

     

    클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 방법이다. 확장성타입 안정성 때문에 사용합니다.

    제네릭은 기본 데이터 타입에서는 사용할 수 없고 참조 데이터 타입에 대해서만 사용할 수 있습니다.

    제네릭 사용법

    1. 확장성

    기능을 구현할 때 제네릭을 사용하면 다양한 자료형에 적용이 가능하여 확장성을 보장할 수 있습니다. ( 중복의 제거 ) 이러한 특징은 Object를 통해서도 보장이 가능하지만 Object는 타입에 대한 검사가 이뤄지지 않기 때문에 컴파일 타임에 문제를 인지할 수 없습니다. 따라서 잘못된 타입이 적용되었을 경우 에러를 잡기가 힘듭니다. 

    2. 타입 안정성

    제네릭은 사용하고자 하는 자료형을 명시적으로 표시함으로서 잘못된 자료형을 컴파일 타임에 찾을 수 있습니다. 비록 제네릭은 생략될 수 있기 대문에 명시적인 자료형 선언 없이도 사용이 가능하여 타입 안정성이 무너질 수 있으나 컴파일의 경고를 통해 문제 유발 가능성을 알 수 있습니다.

    EmployeeInfo e = new EmployeeInfo(1);
    Integer i = new Integer(10);
    Person<EmployeeInfo, Integer> p1 = new Person<EmployeeInfo, Integer>(e, i);
    Person p2 = new Person(e, i);

     

    extends

    제네릭으로 올 수 있는 데이터 타입을 특정 클래스의 자식으로 제한할 수 있습니다.

    class Person<T extends Info> { ... }

    위의 코드는 Person의 T에 Info 클래스나 그 자식 외에는 올 수 없음을 명시한 것입니다.

    이는 상속(extends) 관계 뿐만 아니라 구현(implements) 관계에서도 사용할 수 있습니다.

     

     

     

     

    출처

    '면접 준비' 카테고리의 다른 글

    [ Java ] 예외 처리하기  (0) 2020.05.29
    [ Java ] 다형성 ( Polymorphism )  (0) 2020.05.25
    [ Java ] final 과 static  (0) 2020.05.25
    [ Java ] Collection  (0) 2020.05.25

    댓글

Designed by Tistory.