위의 코드는 generics을 사용하지 않는 것이 문제입니다.
다음은 작동합니다
는
Vector<Integer> moves = new Vector<Integer>();
move.add(new Integer(x));
<>
내부의 유형 이름은 (Vector
의 경우, 보유 할 요소의 유형 매개 변수 E
은)는 기대해야 어떤 유형의 객체 컴파일러를 알려줍니다.
String
및 Vector<Integer>
을 추가하려고하면이 경우와 같이 지정된 유형의 객체를 추가하려고하면 컴파일 타임 오류가 발생하여 객체 유형이 예상 유형의가 추가됩니다.
그렇다면 Vector
클래스를 사용하지 말아야한다는 것입니다. 더 많은 목적을 위해 Java Collections Framework에서 ArrayList
과 같은 List
을 구현하는 클래스로 충분하고 성능이 우수합니다. 직접 제네릭에 대한 질문에 관련되지는 않지만
편집
, 아담 Paynter 자동 복싱의 사용에 대한 코멘트에 좋은 점을 가져왔다.
Java 5 이후로, 프리미티브와 그 래퍼 클래스, 예를 들어. int
및 Integer
은 필요에 따라 자동으로 서로 변환됩니다.
오류가 아니다
Vector<Integer> v = new Vector<Integer>();
v.add(5); // Not necessary to use an Integer value.
참고로 경고가 아닙니다. 단지 경고입니다. 경고를 신경 쓰지 않는다면 위와 같이하는 것이 여전히 완벽합니다. – Joel