[핵심 정리]
- 클라이언트에서 직접 형변환해야 하는 타입보다는 제네릭 타입이 더 안전하고 쓰기 편하다.
- 새로운 타입을 설계할 예정이라면 배열 대신 제네릭을 사용해서 만들자
public class stack{
private Object[] elements;
... 이하 생략
}
public class stack<E>{
private E[] elements;
... 이하 생략
}
@SuppressWarning("unchecked")
public stack(){
elements = (E[]) new Object[DEFAULT_INITIAL_CAPACITY];
... 이하 생략
}
public E pop(){
if (size == 0)
throw new EmptyStackException();
@SuppressWarnings("unchecked") E result = (E) elements[--size];
elements[size] null; // 다 쓴 참조 해제
return result;
}