Załóżmy, że KeyAdapter
jest to klasa abstrakcyjna z kilkoma metodami, które można przesłonić.
W javie mogę:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Jak zrobić to samo w Kotlinie?
java
abstract-class
kotlin
Tvaroh
źródło
źródło
val k: KeyAdapter = KeyAdapter { println("Hello, world!") }
przyzwyczajeniem. (Jednak szukałem składni lambda). Myślę, że będę szukać anoter pytanie o dokładnie takim tytule, ale lepiej sformułowane pytanie i odwołują się do niego ten jeden z komentarzem ...Odpowiedzi:
Z oficjalnej dokumentacji języka Kotlin :
Zastosowany do twojego problemu:
Jak zauważył Peter Lamberg - jeśli klasa anonimowa jest w rzeczywistości implementacją interfejsu funkcjonalnego ( tj. Nie jest klasą abstrakcyjną ), konwersje SAM mogą być użyte do dalszego uproszczenia tego stwierdzenia:
Proszę również zwrócić uwagę na tę dyskusję na temat różnych zastosowań interfejsów zdefiniowanych w Javie i Kotlin.
źródło