2011-04-28 4 views
0
import java.util.*; 

public class MyClass { 
    public static void main(String[] args) { 
    List<String> a = new ArrayList<String>(); 
    a.add("1"); 
    a.add("2"); 
    a.add("3"); 
    List<String> v = new Vector<String>(); 
    Collections.addAll(v,a); 

    System.out.println(v); 

    } 
} 

오류 : /home/compilerauto/sessions/141/MyClass.java:10 : Collections의에서의 오퍼레이션과 addAll (java.util.Collection으로, T ...) (java.util.List, java.util.List)에 적용 할 수 없습니다.Collections.addAll에 컴파일 오류가

왜 그렇습니까?

+0

'Collections.addAll()'을 사용하는 방식이 아니기 때문에. 당신의 IDE가 그렇게 말하지 않습니까? (IDE를 사용하고 있습니까?) – BoltClock

답변

5

및 addAll의 메소드 서명은 다음과 같습니다

Collections.addAll(v,a.toArray()); 

을 또는 목록 인터페이스의를 사용

public static <T> boolean addAll(Collection<? super T> c, T... elements) 

T[] elements로 표현 될 수있다 T... elements 때문에

public static <T> boolean addAll(Collection<? super T> c, Collection<? super T> elements) 

반대로 시도 addAll :

v.addAll(a); 
+0

감사합니다. 그것은 효과가 있었다. – Sid

1

That form of addAllCollection 두 개를 취하지 않으므로 하나의 Collection 개를 취한 다음 해당 컬렉션에 같은 유형의 여러 항목을 추가해야합니다.

그냥 v.addAll(a), Collection 자체의 인스턴스 메소드가 필요합니다.

+0

고마워요. 그것은 효과가 있었다. – Sid

관련 문제