2010-08-04 52 views
7

我有一個ArrayList,我想加入一個','的分隔符, 我在這裏讀了一些答案,StringUtils.join是一個很好的選擇,但問題是,當我試圖加入一個ArrayList我得到以下錯誤:Java:StringUtils.join ArrayList上返回NoSuchMethodError異常

java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.join(Ljava/util/Collection;C)Ljava/lang/String; 

代碼:

ArrayList<String> friendsList = new ArrayList<String>(); 
. 
. 
. 
StringUtils.join(friendsList, ','); 

我失去了什麼?

當我使用netbeans編碼時,它不會提醒我這個錯誤,它只在我嘗試編譯時纔會發生。

回答

19

您有舊版本的commons-lang。獲取具有此方法的最新版本。

或者,你可以調用StringUtils.join(friendsList.toArray(), ',')

+1

感謝你的回答,我把頭髮拉過來。 – tth 2011-11-23 03:17:21

2

「只有在我嘗試編譯時纔會發生。」

這不是編譯錯誤。當被調用的方法的簽名與類路徑中的相關類的不匹配時,這是發生在運行時的鏈接錯誤。你可能在編譯時和運行時有不同的jar(可能有不同的版本)。

+0

嗨,很抱歉覺得這麼晚了,我也遇到同樣的問題,我通過打印System.getProperty(「java.class.path」)檢查它是否有commons-lang-2.5 ,但是我仍然在運行時遇到這個錯誤,任何線索? – user2720864 2013-10-16 09:36:22

1

我猜想類路徑的一個問題。

1

此方法,因爲公郎2.3存在,請檢查您的罐子。

1

我使用2.4.jar。儘管如此,我仍然需要使用像這樣的StringUtils.join(friendsList.toArray(),',')來完成它。