Appeler la complétion de kotlin en java
J'ai une méthode de requête Web kotlin qui prend une fonction comme paramètre. En raison de la configuration d'une de mes classes, je dois la conserver en tant que classe java, mais je dois appeler la méthode de requête Web à partir de la classe java.
J'ai une classe appelée Lock
que je récupère de ma base de données en utilisantFuel
Ma méthode kotlin est la suivante
fun fetchLocks(completion: (Array<Lock>) -> Unit) {
// asynchronous api calls that aren't relevant.
completion(locks)
}
Je sais que cette méthode fonctionne et je peux l'appeler à partir d'un fichier kotlin
FuelHelper().fetchLocks { locks ->
Do stuff with my locks
}
Le problème que je rencontre est d'obtenir la syntaxe appropriée pour appeler cette méthode en java.
new FuelHelper().fetchLocks();
Le paramètre que java attend est (Function1<?super Lock[], Unit>)
J'ai essayé pendant un certain temps maintenant et je suis incapable de surmonter cela. Toute aide serait appréciée.
En supposant que vous utilisez la syntaxe java 8.
new FuelHelper().fetchLocks(locks -> {
...
});
Ou sans lambda
new FuelHelper().fetchLocks(new Function1<Lock[], Unit>() {
@Override
public Unit invoke(Lock[] locks) {
return null;
}
});