Je suis en train de faire une bibliothèque d'API pour nos services Web, et je me demande s'il est possible de faire quelque chose comme ceci:Passage d'arguments aux classes internes anonymes
abstract class UserRequest(val userId: Int) {
def success(message: String)
def error(error: ApiError)
}
api.invokeRequest(new UserRequest(121) {
override def success(message: String) = {
// handle success
}
override def error(error: ApiError) = {
// handle the error
}
}
Je parle de passage paramètres à la classe interne anonyme, et outrepassant les deux méthodes.
Je suis extrêmement nouveau à Scala, et je me rends compte que ma syntaxe pourrait être complètement fausse. J'essaie juste de trouver un bon design pour cette bibliothèque avant de commencer à la coder.
Je suis prêt à prendre des suggestions à ce sujet, si je le fais de manière complètement incorrecte, ou s'il y a un meilleur moyen. L'idée est que l'API va prendre une sorte d'objet de requête, l'utiliser pour faire une requête dans un thread via http, et quand la réponse a été faite, renvoyer d'une manière ou d'une autre à l'appelant si la requête a été réussie ou une erreur. Les fonctions de requête/erreur doivent être exécutées sur le thread principal.