private ArrayList<String> colors = new ArrayList<String>();
위의 예를 보면 제네릭의 핵심은 컬렉션에 유형을 적용하는 것입니다. 그래서, 프로그래머의 재량에 따라 String으로 형변환 될 필요가있는 "Objects"배열을 가지는 대신 ArrayList의 컬렉션에 "String"유형을 적용합니다. 이것은 나에게 새로운 것이지만 나는 그것을 정확하게 이해하고 있는지 확인하고 싶다. 이 해석이 맞습니까?Java generics는 주로 컬렉션의 요소에 정적 유형을 강제하는 방식입니까?
컴파일시에만 런타임에 실제로 유형 안전을 추가하지 않는다는 점에 유의하십시오. 유형은 런타임에 삭제되고 아무 것도 발생할 수 없습니다. Generics는 문서/명확성 및 컴파일 타임 검사 용입니다. – davetron5000
@ davetron5000 true! Java는이 "기능"유형 삭제를 호출합니다. http://java.sun.com/docs/books/books/tutorial/java/generics/erasure.html 개인적으로, 나는 그것이 가장 성가신 것으로 생각합니다. – poundifdef
기존 코드와의 호환성을 손상시키지 않으면 서 제네릭을 추가 할 수 없었습니다. Neal Gafter는 다음과 같이 여기에 대해 설명합니다. http://gafter.blogspot.com/2006/11/reified-generics-for-java.html –