Item31 - 한정적 와일드카드를 사용해 API 유연성을 높이라
아이템 28에서 이야기했듯 매개변수화 타입은 불공변이다. => List != List 리스코프 치환원칙을 생각해보면 불공변인게 정상이다. => List은 List가 하는 일을 제대로 수행을 하지 못하니 하위 타입이 될 수 없다. 하지만 불공변 방식은 유연하지 못하다. 다음 Stack 예제를 보자 public class Stack { pubilc Stack(); public void push(E e); public E pop(); public boolean isEmpty(); } 여기에 일련의 원소를 스택에 넣는 메서드를 추가해야 한다고 가정하자 public void pushAll(Iterable src) { for (E e : src) push(e); } 이 메서드는 스택의 원소 타입과 src의 원소 타..
2023.12.07