Aufruf habe ich eine Hilfsklasse Kotlin wie folgt definiert:eine Kotlin Funktion höherer Ordnung von Java
class CountdownTimer(endDateInSeconds: Long, callback: (timeRemaining: RemainingTime) -> Unit)
die wie der Name, eine Epoche Zeit in Anspruch nimmt impliziert und einen Rückruf in festen Intervallen aufgerufen werden (Sekunden in diesem Fall) bis das Enddatum erreicht ist. RemainingTime ist eine Datenklasse, die bis zum Enddatum die Zeit (Sekunden, Minuten, Stunden usw.) enthält.
ich diese Klasse von Kotlin sauber verwenden:
countdownTimer = CountdownTimer(endDate, { timeRemaining ->
var timeString = // format time remaining into a string
view?.updateCountdownTimer(timeString)
})
jedoch, wenn ich das nenne aus Java, ich bin einen unnötigen Rückgabewert in dem Rückruf zu schaffen gezwungen, auch wenn die anonyme Funktion eine Einheit Rückkehr gibt Typ (was in der Theorie ist das Äquivalent eines Java Rückgabetyp void):
this.countdownTimer = new CountdownTimer(this.endDate, remainingTime -> {
var timeString = // format time remaining into a string
if (view != null) {
view.updateCountdownTimer(timeString);
}
return null;
});
Während technisch gesehen kein Problem, mit einem bedeutungslosen Rückgabewert zu tun, bieten von der Java Rückruf .. falsch scheint. Gibt es eine bessere Möglichkeit, diesen Rückruf in Kotlin auszudrücken?