2010-08-04 11 views
7

Mam ArrayList, które chciałbym dołączyć z separatorem ",", czytałem w niektórych odpowiedzi tutaj, że StringUtils.join jest dobrym rozwiązaniem, ale problem jest to, że gdy próbuję dołączyć ArrayList otrzymuję następujący błąd:Java: StringUtils.join na ArrayList zwraca wyjątek NoSuchMethodError

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

Kod:

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

Czego mi brakuje?

kiedy koduję z netbeans to nie ostrzega mnie o tym błędzie, zdarza się tylko, gdy próbuję skompilować.

Odpowiedz

19

Masz starszą wersję commons-lang. Pobierz najnowszą wersję, która ma tę metodę.

Alternatywnie, można zadzwonić StringUtils.join(friendsList.toArray(), ',')

+1

Dzięki za odpowiedź, wyciągnąłem włosy z tego. – tth

2

"Zdarza się tylko wtedy, gdy próbuję skompilować."

To nie jest błąd kompilacji. Jest to błąd powiązania, który występuje w środowisku wykonawczym, gdy podpis wywoływanej metody nie jest zgodny z odpowiednią klasą w ścieżce klas. Prawdopodobnie masz różne słoiki w czasie kompilacji i czasu wykonania (być może inne wersje).

+0

Cześć przepraszam za przebudzenie tak późno, ja też mam ten sam problem, sprawdziłem przez drukowanie 'System.getProperty (" java.class.path ")', że ma on commons-lang-2.5 w tym , ale nadal mam ten błąd podczas wykonywania, wszelkie wskazówki? – user2720864

1

Zgaduję, że istnieje problem z ścieżką klas.

1

Metoda ta istnieje od świetlicy lang 2.3, sprawdzić słoik.

1

Używam wersji 2.4.jar. Nadal musiałem użyć czegoś takiego jak ta StringUtils.join (friendsList.toArray(), ','), aby to zrobić.