Java

Java

[Java] Java Generic (2) - 타입 소거 및 제한 사항

지난 시간에는 제네릭의 종류와, 사용법에 대해서 알아봤습니다. 이번시간에는 제네릭에 대해 컴파일러가 수행하는 타입 소거와, 공식문서에서 제안하는 제네릭 사용시 제안 사항에 대해서 알아보겠습니다. ✅ Type Erasure(타입 소거) 타입 소거는 제네릭의 사용 방식이라기 보단 컴파일러가 제네릭을 대하는 방식이라고 생각할 수 있습니다. 제네릭은 컴파일시 엄격한 유형 검사를 제공합니다. 자바 컴파일러는 제네릭 구현을 위해 Type Erasure 기능을 적용합니다. 타입 소거에 대한 규칙은 다음과 같습니다. 제네릭 타입의 모든 타입 매개변수를 해당 경계 혹은 Object 타입으로 교체합니다. 제네릭 타입을 제거한 후 타입이 일치하지 않는다면 타입 캐스팅을 합니다. 확장된 제네릭 타입의 다형성을 보존하기 위해 ..

Java

[Java] Java Generic (1) - 기본적인 제네릭의 사용!

제네릭은 익숙하듯 하다가도, 시간이 지나면 내가 제대로 알고있나? 라는 생각이 들었던 부분이었습니다. 자바 뿐만 아니라 여러 언어에서도 타입에 대한 안정성을 보장하기 위해 제네릭을 차용해 사용하고 있습니다. 무백스 스터디를 진행하면서 공식문서와 레퍼런스를 통해 공부한 제네릭의 모든 내용을 정리해보려고 합니다!! ✅ 제네릭은 왜 사용할까? 컴파일 타임에 강력한 유형 검사를 할 수 있습니다. 자바 컴파일러는 제네릭을 사용한 코드가 type safety를 위반한다면 오류를 발생시킵니다. 형 변환을 제거할 수 있습니다. // 제네릭 사용 x List list = new ArrayList(); list.add("hello"); String s = (String) list.get(0); // 제네릭 사용 O Lis..

HiiWee
'Java' 카테고리의 글 목록