긴 연휴가 끝나고 오랜만에 학습!! 중요한 Generic 배우는 날이므로 집중합시다!😎
뭐든지 담을 수 있는 박스 -> 어떤 것을 담고 있는지 표시해서 담기
다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입 체크
미리 사용할 타입을 명시해서 형 변환을 하지 않아도 되게 함
원래는 형변환 하기 전에 instance of로 메모리에 있는 지 확인하고 형변환을 해야 했었다
🔔 기존 방식 runtime에서 한번 체크하고 타입을 체크했음!!
🚨 그래서 컴파일 시에 타입 체크를 하기 위해서!! Generic 사용!
클래스에 선언된 Generic
클래스 또는 인터페이스 선언 시 <>에 타입 파라미터 표시!
public interface Interface_Name<T>{}
형인자(Type Parameter) -> 임의의 참조형 타입
T : reference Type
E : Element
K : Key
V : Value
객체 생성 시 변수쪽과 생성 쪽의 타입은 반드시 같아야 함
🚨 set 으로 객체를 받을 때는 다 받을 수 있게 (Object) 한다면
🚨 get으로 객체를 반환할 때는 Object 밖에 안됨!
그래서 T를 사용해서 선언한 후에 박스를 사용할 때(클래스를 선언할 때)
타입을 정해주면 이제 그 타입에 맞게만 받고 쓸 수 있다!!
주의사항
1. raw type 사용과 @SuppressWarning (최악의 경우에 사용)
헷갈리는 사용법
🚨 Generic은 런타임에서는 타입이 없다!!
🔔 invariant 한번 확인해보기
Generic Method < P >
하 필기 했던거 날아가서 이 페이지에 문제가 있는거 같음 중요한 것만 적어두고 출간
?
? extends Person
? super Person
논리적 오류 없애기 위해 사용
타겟 중요함 어노테이션 사용할 수 있는 부분 명명
B형 특강 대비 환경정비 + 예습