만약 타입 안정성이 확보 되었다고 판단되면 @SuppressWarnings(“unchecked”) 사용하여 경고를 없에 버리자
ArrayList에 toArray 메소드를 보면 jdk 11 기준
1 2 3 4 5 6 7 8 9 10 11 12
@SuppressWarnings("unchecked") public <T> T[] toArray(T[] a) { if (a.length < size) // Make a new array of a's runtime type, but my contents: return (T[]) Arrays.copyOf(elementData, size, a.getClass()); System.arraycopy(elementData, 0, a, 0, size); if (a.length > size) a[size] = null; return a; }
@SuppressWarnings(“unchecked”) 전체에 걸려 있는데 범위가 너무 넓어지니 지역변수를 선언해 한정을 시키자.
1 2 3 4 5 6 7 8 9 10 11 12 13
public <T> T[] toArray(T[] a) { if (a.length < size) // Make a new array of a's runtime type, but my contents: @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; }