2014-03-02 5 views
0

왜 형식 안전 경고가 표시됩니까?일반적으로 형식화 된 배열의 억압 문제

MyAwesomeObject<T>[] parent = new MyAwesomeObject[1]; 
+0

가능한 원시 유형은 무엇이며 왜 사용하지 않아야합니까? (http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt) -we-use-it) 참고 : [Java 1.6 : List of array 만들기] (http://stackoverflow.com/questions/5662394/java-1-6-creating-an-array-of-listt) –

답변

0

일반적으로 배열은 제네릭 형식이 적합하지 않기 때문입니다. 사람들이 일반적인 유형의 데이터 구조를 처리하는 가장 일반적인 방법은 목록을 사용하는 것입니다.

예를 들어 배열이 아닌 List<T> 개체를 만듭니다. 어레이가 generics와 잘 어울리지 않고 유형 안전 경고를주는 한 가지 이유는 배열이 인 동시에이기 때문에 하위 유형을 포함 할 수 있다는 의미입니다.

예를 들어, 객체 배열에는 long 및 int가 포함될 수 있습니다.이 배열은 런타임에 배열에서 항목을 호출하려고 할 때 실패합니다. 목록을 사용하면 컴파일 타임에 하위 유형을 삽입 할 수 없으므로 런타임에 코드가 실패 할 수 있습니다.

그래서 규칙 대신 배열을 사용하는 것이 좋습니다. 그러나 실제로 배열을 사용하려는 의도가 있고 배열에 하위 유형을 삽입하지 않을 것이라 확신 할 수 있습니다. 입력 한 줄 위에 @SuppressWarnings("unchecked") 줄을 추가하십시오.