/ / Kotlin: Pourquoi ne puis-je pas utiliser l'une de mes fonctions? - kotlin

Kotlin: Pourquoi ne puis-je pas utiliser l'une de mes fonctions? - kotlin

J'essaie d'utiliser une de mes fonctions définies qui accepte une chaîne, mais le logiciel n'est pas compilé.

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

fun passes(remoteAddress: InetSocketAddress) = passes(remoteAddress.hostName)

L'erreur

Je ne peux même pas appeler la fonction string en utilisant une chaîne personnalisée, par exemple passes("127.0.0.1").

L'erreur avec une chaîne personnalisée

None of the following functions can eb called with the arguments supplied.

passes(String) defined in abendigo.Firewall
passes(InetSocketAddress) defined in abendigo.Firewall

Réponses:

4 pour la réponse № 1

Je présume que vous utilisez java.lang.String au lieu de kotlin.String dans le code source de Kotlin. Veuillez utiliser seulement kotlin.String à la place, c’est le type que possèdent les littéraux de chaîne dans Kotlin (mais dans le bytecode, il est toujours transformé en java.lang.String).


2 pour la réponse № 2

La question était une importation de java.lang.String. Pour une raison quelconque, IntelliJ l’a importé.