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

Kotlin: Why can't I use one of my functions?

我正在尝试使用我定义的接受字符串的函数之一,但软件无法编译。

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

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

我假设您在 Kotlin 源代码中使用 java.lang.String 而不是 kotlin.String。请只使用 kotlin.String 代替,这是 Kotlin 中字符串文字的类型(但在字节码中它仍然转换为 java.lang.String)。