为什么我不能在List上使用Apache的StringUtils.join?

时间:2011-08-23 17:13:46

标签: java collections apache-commons apache-stringutils

当我尝试

StringUtils.join(myList,',');

我的编译失败了:

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

但是以下工作:

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

docs (Apache Commons Lang 2.5)似乎表明两者都应该有效,因为它们都记录了:

public static String join(Collection collection,
                      char separator)

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

有什么想法吗?为了记录,我正在导入import org.apache.commons.lang.StringUtils;

3 个答案:

答案 0 :(得分:12)

最可能的原因是,您使用的是旧版本的Commons Lang,因为使用Collection的方法仅在2.3中添加。

您可以通过查看MANIFEST.MF字段中Jar中的Implementation-Version文件来查看该内容。

答案 1 :(得分:2)

我之前遇到过这个问题,并意识到这是由于我导入的顺序。

一旦我按照导入的顺序移动我的公共JAR,它就可以了。

希望这有帮助。

答案 2 :(得分:0)

不完全是您的问题,但相关:

org.apache.commons.lang.StringUtils中,存在方法

join(Object[])

没有分隔符。

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

所有采用分隔符(可以String使用char instesad。{{1}}。因此,如果您忘记了分隔符,则您的错误消息可能指向错误的问题。