Предположим, что KeyAdapter
это абстрактный класс с несколькими методами, которые можно переопределить.
В java я могу:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
Как сделать то же самое в Котлине?
java
abstract-class
kotlin
Тварох
источник
источник
val k: KeyAdapter = KeyAdapter { println("Hello, world!") }
работает. (Однако я искал лямбда-синтаксис.) Думаю, я поищу другой вопрос с таким точным названием, но лучше сформулированный вопрос и свяжу его с комментарием ...Ответы:
Из официальной документации на языке Kotlin :
Применяется к вашей проблеме:
Как указал Питер Ламберг, если анонимный класс на самом деле является реализацией функционального интерфейса ( т. Е. Не абстрактного класса ), можно использовать преобразования SAM, чтобы еще больше упростить этот оператор:
Также обратите внимание на это обсуждение различного использования интерфейсов, определенных в Java и Kotlin.
источник