Suponga que KeyAdapter
es una clase abstracta con varios métodos que se pueden anular.
En java puedo hacer:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
¿Cómo hacer lo mismo en Kotlin?
java
abstract-class
kotlin
Tvaroh
fuente
fuente
val k: KeyAdapter = KeyAdapter { println("Hello, world!") }
no funcionará. (Sin embargo, estaba buscando la sintaxis lambda.) Creo que buscaré otra pregunta con este título exacto, pero una pregunta mejor formulada y vincularé esta con un comentario ...Respuestas:
De la documentación oficial del idioma de Kotlin :
Aplicado a su problema en cuestión:
Como ha señalado Peter Lamberg, si la clase anónima es en realidad una implementación de una interfaz funcional ( es decir, no de una clase abstracta ), SAM Conversions se puede utilizar para simplificar aún más esta declaración:
Tenga en cuenta también esta discusión sobre el uso diferente de las interfaces definidas en Java y Kotlin.
fuente