Suponha que KeyAdapter
seja uma classe abstrata com vários métodos que podem ser substituídos.
Em java posso fazer:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Como fazer o mesmo em Kotlin?
java
abstract-class
kotlin
Tvaroh
fonte
fonte
val k: KeyAdapter = KeyAdapter { println("Hello, world!") }
não funciona. (No entanto, eu estava procurando a sintaxe lambda.) Acho que vou procurar outra pergunta com este título exato, mas uma pergunta melhor formulada e vincular esta a ela com um comentário ...Respostas:
Da documentação oficial do idioma Kotlin :
Aplicado ao seu problema em questão:
Como Peter Lamberg apontou - se a classe anônima for realmente uma implementação de uma interface funcional ( ou seja, não de uma classe abstrata ), as Conversões de SAM podem ser usadas para simplificar ainda mais esta declaração:
Observe também esta discussão sobre o uso diferente de interfaces definidas em Java e Kotlin.
fonte