Why can't I use Apache's StringUtils.join on a List?
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开发者_StackOverflow String join(Object[] array,
char separator)
Any ideas? For the record, I'm importing import org.apache.commons.lang.StringUtils;
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.
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.
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.
精彩评论