Appeler une méthode avec le bloc de rappel de Kotlin depuis Java

Lors de l'exécution d'une méthode avec le bloc de rappel de kotlin à partir du code Java, il était nécessaire de faire ce qui suit. Dans les cas suivants, côté Java return Unit.INSTANCE; S'il n'y a pas d'erreur de compilation, Je me demandais quoi faire juste parce qu'on m'avait dit que le type de retour de l'expression Ramda était incohérent, alors je l'ai posté.

kotlin



class KotlinClass {

    fun loadItems(itemIds: List<String>,
                  complete: (isSuccess: Boolean, itemList: List<Item>) -> Unit) {
        /*Certains traitements*/
        complete(true, itemList)
    }
}


java (appelant)



kotlinClass.loadItems(itemIds, (isSuccess, items) -> {
                    /*Certains traitements*/

                    //Remarque: Enfin, l'unité.Doit retourner INSTANCE
                    return Unit.INSTANCE;
                })

Raison

Dans kotlin, même s'il n'y a pas de valeur de retour de la méthode, elle est en fait considérée comme omettant l'unité de retour, et il semble que vous deviez renvoyer Unit.INSTANCE; afin de maintenir la compatibilité avec elle en Java.

Référence: http://stackoverflow.com/questions/37828790/why-do-i-have-to-return-unit-instance-when-implementing-in-java-a-kotlin-functio

Recommended Posts

Appeler une méthode avec le bloc de rappel de Kotlin depuis Java
[Kotlin] Obtenez le constructeur / la méthode Java de KFunction et appelez-le
Appeler la bibliothèque Java à partir de C avec JNI
Appel de méthodes Java à partir de JavaScript exécutées en Java
[Android] Appeler la méthode d'argument par défaut de Kotlin depuis Java
Appel de méthode Java depuis RPG (appel de méthode dans sa propre classe)
J'ai essayé de frapper une méthode Java d'ABCL
J'ai essayé de casser le bloc avec java (1)
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Appeler Java depuis JRuby
Ecrire une classe en Kotlin et l'appeler en Java
[Note] Créez un environnement Java à partir de zéro avec docker
Appeler un programme écrit en Swift depuis Processing (Java)
Créer une méthode java [Memo] [java11]
[ruby] Appel d'une méthode avec un argument
[Java] Obtenir le jeu de caractères avec Apathce Tika / Initialiser la chaîne à partir du jeu de caractères [Kotlin]
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
Jetez un œil à Kotlin dans une perspective Java efficace
Appeler la classe scellée de Kotlin depuis Java
Rechercher et exécuter une méthode à partir d'une instance avec traitement (java)
Construire un projet Java avec Gradle
Exécuter le fichier de commandes à partir de Java
Connexion à une base de données avec Java (partie 1) Peut-être la méthode de base
Accéder à Teradata depuis une application Java
Un exemple simple de rappels en Java
Travailler avec des feuilles de calcul Google à partir de Java
Appelez l'API Java de TensorFlow depuis Scala
Appeler les fonctions du langage C depuis Swift
[Gradle] Construisez un projet Java avec une configuration différente de la convention
Appelez la super méthode en Java
Ce que je n'aime pas lors de l'utilisation de l'interface d'une fonction avec des arguments par défaut dans Kotlin depuis Java
Déclarez une méthode qui a une valeur de retour Java avec le type de données de valeur de retour
[Kotlin] Gérez les champs Java de Kotlin en toute sécurité avec les annotations NotNull (NonNull) / Nullable [Java]
[Java] Récupère MimeType à partir du contenu du fichier avec Apathce Tika [Kotlin]
Appeler l'API GitHub à partir de l'API Socket de Java, partie 2
Intégration API de Java avec Jersey Client
[Java] Résumez comment comparer avec la méthode equals
Méthode de concurrence en Java avec exemple de base
Introduction à Java à partir de 0 Partie 1
Essayez d'exécuter Kubernetes Job à partir de Java
Pourquoi Java appelle-t-il un fichier une classe?
Un ingénieur Java a comparé Swift, Kotlin et Java.
Mémo de méthode de surveillance des changements de répertoire (Java, Kotlin)
J'ai créé une application Janken avec kotlin
[Kotlin] Supprimer les fichiers en double [Java]
Diviser une chaîne avec ". (Dot)" en Java
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
Utiliser le format nommé avec la méthode de format de Ruby
Mémo pour la migration de Java vers Kotlin
Exécutez du code Java à partir de cpp sur cocos2dx
Si une personne de Java apprend PHP
[Kotlin] Je voulais générer un png avec une grande capacité par zone [Java]
Méthode Java
java (méthode)
Incrémenté du troisième argument de la méthode iterate de la classe Stream ajoutée depuis Java9
Méthode Java
[Java] méthode
[Java] méthode