Supposons que KeyAdapter
est une classe abstraite avec plusieurs méthodes qui peuvent être remplacées.
En Java je peux faire:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Comment faire de même à Kotlin?
De la documentation officielle de la langue Kotlin et l'un des premiers hits sur Google:
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e : MouseEvent) {
// ...
}
Appliqué à votre problème actuel:
val keyListener = object : KeyAdapter() {
override fun keyPressed(keyEvent : KeyEvent) {
// ...
}
Comme Peter Lamberg l'a souligné - si la classe anonyme est en fait une implémentation d'une interface fonctionnelle ( c'est-à-dire pas d'une classe abstraite ), SAM Conversions peut être utilisé pour simplifier encore plus cette déclaration:
val keyListener = KeyAdapter { keyEvent ->
// ...
}
Veuillez également noter cette discussion sur les différentes utilisations des interfaces définies dans Java et Kotlin.