본문 바로가기
공부/이펙티브자바

[이펙티브자바]item 27.비검사 경고를 제거하라

by 띵커베르 2023. 2. 10.
728x90
  • 잠재적 위험이 될 수 있는 경고를 제거하는게 좋다.
  • 경고를 제거할 수는 업지만 타입이 안전하다고 확신할 수 있다면 @SuppressWarnings("unchecked") 를사용하자
    • 해당 어노테이션을 사용했다면 해당 경고를 무시해도 안전한 이유를 주석으로 남겨야 한다.
    • 최대한 좁은 범위로 한정하자.상위에 넣으면 하위의 모든 경고가 무시되기 때문에, 추후 누군가가 경고가 될만한 코드를 넣어도 무시된다.
public class SuppressWarning {

    Object[] elementData;
    private int size;

    public <T> T[] toArray(T[] a) {
        if (a.length < size) {
            @SuppressWarnings("unchecked")
            T[] result = (T[]) Arrays.copyOf(elementData, size, a.getClass());
            return result;
        }
        System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }
}
728x90

댓글