타입 안전성 문제
다형성을 활용한 덕분에 코드의 중복 제거, 기존 코드 재사용 가능
하지만 입력할 때 실수로 원하지 않는 타입이 들어갈 수 있음
반환 시점에도 항상 위험한 다운 캐스팅 시도해야 함
>> 타입 안전성 떨어짐
제네릭 적용
<>(다이아몬드)를 사용한 클래스
타입을 미리 결정하지 않음
생성하는 시점에 <> 사이에 원하는 타입 지정
타입 추론
자바 컴파일러가 타입을 추론할 수 있는 상황
>> 읽을 수 있는 타입 정보가 주변에 있어야 추론 가능
용어 정리
제네릭(Generic) 단어 : 일반적인, 범용적인이라는 영어 단어 뜻
>> 특정 타입에 속한 것이 아님
제네릭 타입(Generic Type) : 클래스나 인터페이스를 정의할 때 타입 매개변수를 사용하는 것
>> 제네릭 클래스, 제네릭 인터페이스를 모두 합쳐 제네릭 타입
>> class GenericBox<T> { private T t;} 에서 GenericBox<T>를 제네릭 타입이라 함
타입 매개변수(Type Parameter) : 제네릭 타입이나 메서드에서 사용되는 변수로 실제 타입으로 대체됨
>> GenericBox<T> 에서 T를 타입 매개변수라 함
타입 인자(Type Argument) : 제네릭 타입을 사용할 때 제공되는 실제 타입
>> GenericBox<Integer> 에서 Integer을 타입 인자라 함
>> 타입 인자로 기본형 사용 불가, 대신 래퍼 클래스 사용
로 타입(raw type)
<>을 지정하지 않음
내부의 타입 매개변수가 Object로 사용됨
>> 구시대의 산물, 사용하지 않는 것을 권장
'Java' 카테고리의 다른 글
Java / 컬렉션 프레임워크 - ArrayList (0) | 2025.03.04 |
---|---|
Java / 제네릭(Generic) 2 (0) | 2025.03.04 |
Java / 예외 처리 - 실습 (0) | 2025.03.02 |
Java / 예외 처리 - 이론 (0) | 2025.02.28 |
Java / 지역 클래스, 익명 클래스 (0) | 2025.02.27 |