Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf

Bei der Ausführung einer Methode mit dem Callback-Block von kotlin aus Java-Code war Folgendes erforderlich. In den folgenden Fällen auf der Java-Seite return Unit.INSTANCE; Wenn kein Kompilierungsfehler vorliegt, Ich habe mich gefragt, was ich tun soll, nur weil mir gesagt wurde, dass der Rückgabetyp des Ramda-Ausdrucks inkonsistent ist, also habe ich ihn gepostet.

kotlin



class KotlinClass {

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


Java (Anrufer)



kotlinClass.loadItems(itemIds, (isSuccess, items) -> {
                    /*Einige Verarbeitung*/

                    //Hinweis: Schließlich Einheit.Muss INSTANCE zurückgeben
                    return Unit.INSTANCE;
                })

Grund

Selbst wenn in kotlin kein Rückgabewert der Methode vorhanden ist, wird diese tatsächlich als Auslassen der Rückgabeeinheit behandelt, und es scheint, dass Sie Unit.INSTANCE zurückgeben müssen, um die Kompatibilität mit Java aufrechtzuerhalten.

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

Recommended Posts

Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
[Kotlin] Holen Sie sich Java Constructor / Method von KFunction und rufen Sie es auf
Rufen Sie die Java-Bibliothek von C mit JNI auf
Rufen Sie Java-Methoden aus JavaScript auf, das in Java ausgeführt wird
[Android] Rufen Sie Kotlins Standardargumentmethode von Java aus auf
Java-Methodenaufruf von RPG (Methodenaufruf in eigener Klasse)
Ich habe versucht, eine Java-Methode von ABCL zu verwenden
Ich habe versucht, den Block mit Java zu brechen (1)
[Java] KFunction von Method / Constructor in Java abrufen [Kotlin]
Rufen Sie Java von JRuby aus auf
Schreiben Sie eine Klasse in Kotlin und nennen Sie sie in Java
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Rufen Sie ein in Swift geschriebenes Programm von Processing (Java) auf.
Erstellen Sie eine Java-Methode [Memo] [java11]
[ruby] Eine Methode mit einem Argument aufrufen
[Java] Zeichensatz mit Apathce Tika abrufen / String von Zeichensatz initialisieren [Kotlin]
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Schauen Sie sich Kotlin aus einer effektiven Java-Perspektive an
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Suchen und Ausführen einer Methode aus einer Instanz mit Verarbeitung (Java)
Erstellen eines Java-Projekts mit Gradle
Führen Sie eine Batchdatei von Java aus
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode
Greifen Sie über eine Java-Anwendung auf Teradata zu
Ein einfaches Beispiel für Rückrufe in Java
Arbeiten Sie mit Google-Tabellen aus Java
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Rufen Sie C-Sprachfunktionen von Swift aus auf
[Gradle] Erstellen Sie ein Java-Projekt mit einer Konfiguration, die von der Konvention abweicht
Rufen Sie die Super-Methode in Java auf
Was mir bei der Verwendung der Schnittstelle einer Funktion mit Standardargumenten in Kotlin aus Java nicht gefällt
Deklarieren Sie eine Methode mit einem Java-Rückgabewert mit dem Rückgabewert-Datentyp
[Kotlin] Behandeln Sie Java-Felder sicher aus Kotlin mit NotNull (NonNull) / Nullable-Annotationen. [Java]
[Java] Holen Sie sich MimeType aus dem Inhalt der Datei mit Apathce Tika [Kotlin]
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
API-Integration von Java mit Jersey Client
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
Parallelitätsmethode in Java mit grundlegendem Beispiel
Einführung in Java ab 0 Teil 1
Versuchen Sie, Kubernetes Job von Java aus auszuführen
Warum nennt Java eine Datei eine Klasse?
Ein Java-Ingenieur verglich Swift, Kotlin und Java.
Memo zur Überwachungsmethode für Verzeichnisänderungen (Java, Kotlin)
Ich habe eine Janken App mit Kotlin gemacht
[Kotlin] Doppelte Dateien löschen [Java]
Teilen Sie eine Zeichenfolge in Java mit ". (Dot)"
Tipps zur Interoperabilität mit Kotlin zum Senden an Java-Entwickler
Verwenden Sie das benannte Format mit Rubys Formatmethode
Memo für die Migration von Java nach Kotlin
Führen Sie Java-Code von cpp auf cocos2dx aus
Wenn eine Person aus Java PHP lernt
[Kotlin] Ich wollte ein PNG mit einer großen Kapazität pro Bereich generieren [Java]
Java-Methode
Java (Methode)
Inkrementiert durch das dritte Argument der iterierten Methode der aus Java9 hinzugefügten Stream-Klasse
Java-Methode
[Java] -Methode
[Java] -Methode