[Java] 제네릭에서 와일드카드를 이용한 매개변수화된 타입의 제한
글쓴이: gurumong / 작성시간: 수, 2016/12/21 - 11:30오전
자바의 제네릭에 관한 질문입니다
교재를 보다보니 잘 이해되지 않는 부분이 있는데요
"메소드가 매개변수화된 타입인 매개변수를 받거나 매개변수화된 타입을 반환한다면 매개변수화된 타입은 항상 와일드카드를 가진 형식으로 표현해야 한다. 일반적으로 매개변수에는 하위 경계 와일드카드를 사용하고 반환 값에는 상위 경계 와일드카드를 사용한다"
일반적으로 매개변수로 객체를 받을때는 그 타입을 정하기로 보통 가능한 구체적이지 않고 추상적인, 그러니까 상속트리에서 중간쯤 있는 추상 클래스나 인터페이스 정도의 타입을 가지고 핸들링 하는것이 좋다고 생각하고 있었는데요
가령 여러 타입의 숫자들의 배열을 더 하는 addAll 메소드를 가정한다면 <? externs Number> 정도가 되어야겠죠
하지만 위의 교재 인용문에서는 매개변수에는 하위 경계 와일드카드를 쓰는것이 좋다라고 하니까 좀 의야스럽습니다
매개변수에 < ? super ...>로 표현되는 하위 경계 와일드카드를 쓰면 기대되는 좋은 점이 뭐가 있는걸까요?
Forums:
댓글 달기