Kotlin:为什么我不能使用我的一个功能?

我想使用我定义的函数接受一个字符串,但软件不会编译。

fun passes(address: String) = Collections.frequency(addresses, address) <= CONNECTIONS_PER_IP fun passes(remoteAddress: InetSocketAddress) = passes(remoteAddress.hostName) 

错误

我甚至无法使用自定义字符串调用字符串函数,例如, passes("127.0.0.1")

自定义字符串的错误

 None of the following functions can eb called with the arguments supplied. passes(String) defined in abendigo.Firewall passes(InetSocketAddress) defined in abendigo.Firewall 

我认为你在Kotlin源代码中使用java.lang.String而不是kotlin.String 。 请仅使用kotlin.String而这是Kotlin中字符串文字所具有的类型(但在字节码中它仍然转换为java.lang.String )。

问题是java.lang.String的导入。 出于某种原因IntelliJ导入它。