Generic (2) 썸네일형 리스트형 5-6) 제네릭과 가변인수를 함께 쓸 때는 신중하라 제네릭과 가변인수 // 제네릭과 가변인수를 함께 사용하면 컴파일러가 경고를 보낸다 // Type safety: Potential heap pollution via varargs parameter stringList public static void myFunc(List... stringLists) List intList = List.of(1); Object[] objects = stringLists; objects[0] = intList; // 힙 오염 발생 String s = stringLists[0].get(0); // ClassCastException 런타임 에러 발생 } 가변인수와 제네릭은 자바5때 함께 추가되었으나 함께 사용하기에는 까다롭다. 제네릭과 가변인수를 함게 사용하면 컴파일러는 힙 오염.. 5-4) 이왕이면 제네릭 타입으로 만들라 Object 기반 Stack public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { this.elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { this.ensureCapacity(); this.elements[this.size++] = e; } public Object pop() { if(this.size == 0) { throw new EmptyStackException(); } Object result = thi.. 이전 1 다음