开发者

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

开发者 https://www.devze.com 2023-03-30 18:29 出处:网络
When I try StringUtils.join(myList,\',\'); I get a compilation failure: cannot find symbol symbol: method join(java.util.List,char)

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消