2014-07-11 2 views
0

가능할 때마다 매개 변수화 된 벡터를 사용하는 것이 좋습니다. 그래서 수퍼 클래스를 가지며, 그 중 하나의 메소드는 원시 벡터를 반환합니다. 문자열 매개 변수화 된 벡터입니다.원시 벡터를 매개 변수화 된 벡터로 변환

Vector<String> paramVector = new Vector<String>(); 
paramVector = Superclass.somemethod(textfield.gettext); //Returns a raw vector 

이 코드가 체크되지 않은 변환이 필요하다는 경고를 제공, 나는 할당하면서 파라미터 하나에 원시 벡터, 즉 동일한 작업을 수행 변환하고 싶습니다.

답변

1

당신은 단순히 @SuppressWarnings({"unchecked", "rawtypes"})를 사용할 수 있지만이 코드를 사용하는 것이 더 안전 할 것입니다 :

Vector rawVector = Superclass.somemethod(textfield.gettext); 
Vector<String> paramVector = new Vector<String>(); 

for(Object obj : rawVector) 
{ 
    if(obj instanceof String) 
     paramVector.add(obj); 
} 
+0

그래서 할당하는 동안 매개 변수 벡터에 직접 원시 벡터를 주조 방법이 없다? – Cybermonk

+1

@Cybermonk 원시 벡터는 포함하고있는 객체의 유형을 지정하지 않기 때문에 제네릭을 사용합니다. 매개 변수화 된 벡터에 원시 벡터를 지정하고 캐스팅 할 수 있지만 컴파일러에서 경고를받습니다. 경고를 억제하거나 매개 변수가있는 벡터에 항목을 안전하게 추가하려면 위의 루프를 사용할 수 있습니다. – Juvanis

관련 문제