2010-08-04 8 views
7

Tengo una ArrayList que me gustaría unir con un delimitador de ',', He leído en algunas respuestas aquí que StringUtils.join es una buena opción, pero el problema es que cuando trato de unirse a un ArrayList me sale el siguiente error:Java: StringUtils.join en una ArrayList devuelve excepción NoSuchMethodError

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

código:

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

lo que me estoy perdiendo?

cuando estoy codificando con netbeans no me avisa de este error, solo ocurre cuando intento compilar.

Respuesta

19

Tiene una versión anterior de commons-lang. Obtenga la última versión, que tiene este método.

Alternativamente, puede llamar StringUtils.join(friendsList.toArray(), ',')

+1

Gracias por esta respuesta, estaba tirando de mi pelo sobre este. – tth

2

"solo ocurre cuando intento compilar".

Esto no es un error de compilación. Es un error de enlace que ocurre en tiempo de ejecución cuando la firma del método invocado no coincide con la de la clase relevante en el classpath. Es probable que tenga diferentes jar en tiempo de compilación y tiempo de ejecución (diferentes versiones tal vez).

+0

Hola, lo siento por despertar tan tarde, también estoy teniendo el mismo problema, comprobé imprimiendo el 'System.getProperty (" java.class.path ")' que está teniendo el commons-lang-2.5 en él , pero aún estoy teniendo este error durante el tiempo de ejecución, ¿alguna pista? – user2720864

1

Un problema con classpath, supongo.

1

Este método existe desde lang Commons 2.3, compruebe su frasco.

1

Uso 2.4.jar. Aún así, tuve que usar algo como este StringUtils.join (friendsList.toArray(), ',') para hacerlo.

Cuestiones relacionadas