Assume that KeyAdapter
is an abstract class with several methods that can be overridden.
In java I can do:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
How to do the same in Kotlin?
From the official Kotlin language documentation and one of the first hits on Google:
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e : MouseEvent) {
// ...
}
Applied to your problem at hand:
val keyListener = object : KeyAdapter() {
override fun keyPressed(keyEvent : KeyEvent) {
// ...
}
As Peter Lamberg has pointed out - if the anonymous class is actually an implementation of a functional interface (i.e. not of an abstract class), SAM Conversions can be used to simplify this statement even further:
val keyListener = KeyAdapter { keyEvent ->
// ...
}
Please also note this discussion about the different usage of interfaces defined in Java and Kotlin.