Supposons qu'il KeyAdapter
s'agit d'une classe abstraite avec plusieurs méthodes pouvant être remplacées.
En java, je peux faire:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Comment faire de même à Kotlin?
java
abstract-class
kotlin
Tvaroh
la source
la source
val k: KeyAdapter = KeyAdapter { println("Hello, world!") }
ne fonctionnera pas. (Cependant, je cherchais la syntaxe lambda.) Je pense que je vais chercher une autre question avec ce titre exact, mais une question mieux formulée et lier celle-ci avec un commentaire ...Réponses:
De la documentation officielle de la langue Kotlin :
Appliqué à votre problème actuel:
Comme l'a souligné Peter Lamberg - 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:
Veuillez également noter cette discussion sur les différentes utilisations des interfaces définies dans Java et Kotlin.
la source