2011-08-23 38 views
7

當我嘗試爲什麼我不能在List上使用Apache的StringUtils.join?

StringUtils.join(myList,','); 

我得到一個編譯失敗:

cannot find symbol 
symbol : method join(java.util.List,char) 

但以下幾項工作:

StringUtils.join(myList.toArray(),','); 

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

最可能的原因是,您使用的是舊版本的Commons Lang,因爲使用Collection的方法僅在2.3版本中添加。

您可以通過在Implementation-Version字段中查看Jar中的MANIFEST.MF文件來檢查該文件。

2

我以前遇到過這個問題,並意識到這是由於我的導入順序。

一旦我將我的commons JAR轉換爲導入順序,它就可以工作。

希望這會有所幫助。

+0

這實際上幫助...非常感謝 – user2720864

0

不太你的問題,但相關:

org.apache.commons.lang.StringUtils,存在一種方法

join(Object[]) 

這並不需要一個分隔符。

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

所有采取定界符(可以使用String instesad的char)。所以如果你忘記了分隔符,你的錯誤信息可能指向錯誤的問題。

相關問題