尝试用Java String连接字符串时没有这样的可迭代对象,join [已关闭]

1hdlvixo  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(145)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
3天前关闭。
社区在2天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question
这个问题不是由输入错误引起的。我没有意识到没有一个函数重载可以同时接受char和string。我也没有意识到在函数调用中char不会被转换为string。最后,我没有意识到char和string是两个非常不同的类型。
所以,不,这不是一个错字-我只是不知道Java。
下面的代码片段,我相当有信心应该可以工作

String[] arrayBootstrapServers = {
    "server1.com:9093",
    "server2.com:9093"
};

String stringBoostrapServers = String.join(',', arrayBootstrapServers);

编译时产生以下错误

[ERROR] ... no suitable method found for join(char,java.lang.String[])
[ERROR]     method java.lang.String.join(java.lang.CharSequence,java.lang.CharSequence...) is not applicable
[ERROR]       (argument mismatch; char cannot be converted to java.lang.CharSequence)
[ERROR]     method java.lang.String.join(java.lang.CharSequence,java.lang.Iterable<? extends java.lang.CharSequence>) is not applicable
[ERROR]       (argument mismatch; char cannot be converted to java.lang.CharSequence)

为什么?

rfbsl7qr

rfbsl7qr1#

你可以用这种方式改变。“String.join”的第一个参数类型是“CharSequence”,而不是“char”。
String stringBoostrapServers = String.join(",", arrayBootstrapServers);

gfttwv5a

gfttwv5a2#

它必须是一个字符串,而不是一个字符。

String.join(",", array);

','是一个char,","是一个string。显然在Java中,不能用char参数作为分隔符调用String join,因为需要一个string。

相关问题