**已关闭。**此问题为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)
为什么?
2条答案
按热度按时间rfbsl7qr1#
你可以用这种方式改变。“String.join”的第一个参数类型是“CharSequence”,而不是“char”。
String stringBoostrapServers = String.join(",", arrayBootstrapServers);
gfttwv5a2#
它必须是一个字符串,而不是一个字符。
','
是一个char,","
是一个string。显然在Java中,不能用char参数作为分隔符调用String join,因为需要一个string。