// E 생산자(producer) 매개변수에 와일드카드 타입 적용public void pushAll(Iterable src) { for (E e : src) push(e);}// E 소비자(consumer) 매개변수에 와일드카드 타입 적용public void popAll(Collection(? super E) dst) { while (!isEmpty()) dst.add(pop());} Stack 클래스의 메소드를 한정적 와일드카드를 사용해 구현했다.간단한 예제지만, 헷갈리는 부분들을 분명하게 공부하고 넘어가고자 한다. 제네릭에서의 생산자(producer)와 소비자(consumer)생산자(producer) 생산자는 데이터를 "생산"하여 제공하는 역할을 한다. 즉, 컬렉션이나 객체로부터 데이터를 추출하거나 ..