2011-08-23 3 views
7

왜 아파치의 StringUtils.join을 목록에 사용할 수 없습니까?

StringUtils.join(myList,','); 

컴파일 오류가 발생합니다.

cannot find symbol 
symbol : method join(java.util.List,char) 
cannot find symbol 
symbol : method join(java.util.List,char) 
그러나 다음과 같이 작동합니다.

StringUtils.join(myList.toArray(),','); 
docs (Apache Commons Lang 2.5)

docs (Apache Commons Lang 2.5)는 둘 다 작동해야 함을 나타냅니다. 둘 다 :

public static String join(Collection collection, 
         char separator) 

public static String join(Object[] array, 
         char separator) 

어떤 아이디어가 있습니까? 레코드의 경우 import org.apache.commons.lang.StringUtils;

를 가져옵니다.
+3

버전 2.3부터 사용할 수 있습니다. 오래된 JAR 파일이 있습니까? – home

+0

그리고'myList'는 어떻게 정의 되었습니까? –

+0

나는 실제로 같은 문제가 있지만 모든것과 내 버전을 확인했습니다. 2.6 – Kevin

답변

12

가장 일반적인 이유는 Collection을 사용하는 방법이 2.3에 추가되었으므로 이전 버전의 Commons Lang을 사용하고 있기 때문일 수 있습니다.

자물쇠의 MANIFEST.MF 파일을 Implementation-Version 필드에서 확인하여 확인할 수 있습니다.

2

문제가 일찍 발생하여 가져 오기 순서가 잘못되었음을 알게되었습니다.

일단 가져온 명령을 JAR 파일로 옮기면 작동합니다.

희망이 도움이됩니다.

+0

이것은 실제로 도움이됩니다 ... 고맙습니다. – user2720864

0

그렇진 문제지만 관련 : org.apache.commons.lang.StringUtils에서

는 구분을하지 않는 방법

join(Object[]) 

에게이 존재한다.

join(Object[], char) 
join(Collection, char) 

모든 (charString instesad을 사용할 수있다) 구분 기호를 가지고. 따라서 분리 문자를 잊어 버린 경우 오류 메시지가 잘못된 문제를 지적했을 수 있습니다.