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

7

当我尝试时

StringUtils.join(myList,',');

我遇到了编译错误:

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

但是以下方法可行:
StringUtils.join(myList.toArray(),',');

文档(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
自版本2.3开始就可用。您是否有过时的JAR文件? - home
我其实也有同样的问题,但我已经检查了一切,我的版本是2.6。 - Kevin
你尝试过使用 myList.iterator 吗? - Kevin
@Kevin 我的问题是项目中的apache-commons版本。如果你在2.6版本上遇到了相同的症状,你可能想要提出自己的问题。(这个问题已经有一个被接受的答案,不太可能再引起更多关注。) - Eric Wilson
3个回答

12

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

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


2

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

一旦我将我的commons JAR移动到更高的导入顺序,它就可以工作了。

希望这能帮助到你。


0

虽然不是完全针对您的问题,但与之相关:

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

join(Object[])

这个没有使用分隔符。

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

所有的取分隔符(可以使用String代替char)。所以如果你忘记了分隔符,你的错误信息可能会指向错误的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接