본문 바로가기
Java 배우기

Type Erasure 이레이저 타입

by 노화방지 Anti-aging Hairstyle 2016. 1. 24.
반응형


이레이저 타입 Type Erasure


컴파일 할 때 타입을 보다 엄격하게 체크하기 위하여, 그리고 제네릭 프로그래밍을 지원하기 위하여, generics가 자바 언어에 도입되있습니다.

generics를 구현하기 위하여 자바 컴파일러는 다음을 위하여 타입 이레이저에 적용됩니다:
Generics were introduced to the Java language to provide tighter type checks at compile time and to support generic programming. To implement generics, the Java compiler applies type erasure to:

  • 타입 패러미터가 구속되지 않은 경우, generic 타입의 모든 타입 패러미터를 그들의 bounds 또는  Object 로 대체하기.
    따라서 생성된 bytecode는, 오직 ordinary classes, interfaces 및 methods를 포함하고 있습니다.

    Replace all type parameters in generic types with their bounds or Object if the type parameters are unbounded. The produced bytecode, therefore, contains only ordinary classes, interfaces, and methods.
  • 필요한 경우 타입 안전을 preserve 하기 위하여 타입 캐스트를 삽입
    Insert type casts if necessary to preserve type safety.
  • 확장된 제네릭 타입 안에서 다형성을 preserve 하기 위하여 브릿지 메소드를 생성
    Generate bridge methods to preserve polymorphism in extended generic types.

타입 이레이저는 새로운 클래스들이 패러미터화된 타입에는 생성되지 않음을 보장합니다; 결과적으로, 제네릭은 런타임 오버헤드를 발생시키지 않습니다.
Type erasure ensures that no new classes are created for parameterized types; consequently, generics incur no runtime overhead.


반응형

댓글