아이템31 한정적 와일드카드를 사용해 API 유연성을 높이라
Effective Java 3e 아이템 31를 요약한 내용 입니다.
public class Stack<E> {
public Stack();
public void push(E e);
public E pop();
public boolean isEmpty();
public void pushAll(Iterable<E> src) {
for (E e : src)
push(e);
}
}Strack<Number> numberStack = new Stack<>();
Iterable<Integer> intergers = ...;
numberStack.pushAll(integers);StackTest.java:7: error: incompatible types: Iterable<Integer>
cannot be converted to Iterable<Number>
numberStack.pushAll(integers);
^어떤 선언이 나을까?
메서드 선언에 타입 매개변수가 한 번만 나오면 와일드카드로 대체하라.
정리
Last updated