Why can't I use Apache's StringUtils.join on a List?
Asked Answered
M

3

7

When I try

StringUtils.join(myList,',');

I get a compilation failure:

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

But the following works:

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

The docs (Apache Commons Lang 2.5) seem to indicate that both should work, as they record both:

public static String join(Collection collection,
                      char separator)

and

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

Any ideas? For the record, I'm importing import org.apache.commons.lang.StringUtils;

Myopic answered 23/8, 2011 at 17:13 Comment(4)
It's available since version 2.3. Do you have an outdated JAR file?Outlet
I actually have the same problem but i've checked everything and my versions 2.6Wend
have you tried myList.iterator?Wend
@Wend My issue was the version of apache-commons in my project. If you are having the same symptoms with version 2.6, you may want to ask your own question. (This question, with an accepted answer, is not likely to receive more attention.)Myopic
T
12

The most probable reason is, that you are using an older version of Commons Lang, since the method using a Collection has only been added in 2.3.

You can check that by looking in the MANIFEST.MF file in the Jar at the Implementation-Version field.

Trinh answered 23/8, 2011 at 17:17 Comment(0)
C
2

I had the problem earlier and realized it is due to the order of my import.

Once I shifted my commons JAR up the order of import, it works.

Hope this helps.

Claudell answered 24/1, 2012 at 9:22 Comment(0)
P
0

Not quite your problem but related:

In org.apache.commons.lang.StringUtils, there exists a method

join(Object[])

That doesn't take a delimiter.

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

All take delimiters (may use String instesad of char). So if you forget the delimiter, your error message may be pointing to the wrong problem.

Puett answered 28/8, 2013 at 19:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.