32. 제네릭과 가변인수를 함께 쓸 때는 신중하라
제네릭과 가변인수를 함께 쓸 때 발생하는 문제
"메서드를 선언할 때 실체화 불가 타입으로 varargs 매개 변수를 선언하면? 컴파일러가 경고를 보낸다."
warning: [unchecked] Possible heap pollution from parameterized vararg type List<String>"가변인수 메서드를 호출할 때도 varargs 매개 변수가 실체화 불가 타입으로 추론되면? 그 호출에 대해서도 경고를 낸다."
"매개변수화 타입의 변수가 타입이 다른 객체를 참조하면? 힙 오염이 발생한다."
“가변인자로 제네릭 타입을 사용한다면? 타입 안전성 문제가 발생할 수 있음”
컴파일 경고 무시해도, 힙 오염은 유발하지 않을 자신있어! @SafeVarargs 애너테이션
@SafeVarargs 애너테이션타입 안전성을 위한 조건 (1) - 가변 인수 배열을 수정하지 않기
타입 안전성을 위한 조건 (2) - 가변 인자 배열의 참조를 외부로 노출하지 않기
Last updated