假设这KeyAdapter
是一个抽象类,具有多个可以重写的方法。
在Java中,我可以执行以下操作:
KeyListener keyListener = new KeyAdapter() {
@Override public void keyPressed(KeyEvent keyEvent) {
// ...
}
};
如何在Kotlin中做同样的事情?
从Kotlin官方语言文档中:
window.addMouseListener(object : MouseAdapter() {
override fun mouseClicked(e : MouseEvent) {
// ...
}
适用于您手头的问题:
val keyListener = object : KeyAdapter() {
override fun keyPressed(keyEvent : KeyEvent) {
// ...
}
正如Peter Lamberg指出的那样-如果匿名类实际上是功能接口的实现( 即不是抽象类的实现 ),则可以使用SAM
Conversions
进一步简化该语句:
val keyListener = KeyAdapter { keyEvent ->
// ...
}
还请注意有关Java和Kotlin中定义的接口的不同用法的讨论。
本文向大家介绍Kotlin 创建接口或者抽象类的匿名对象实例,包括了Kotlin 创建接口或者抽象类的匿名对象实例的使用技巧和注意事项,需要的朋友参考一下 一 ,定义接口和抽象类 二,创建对应的匿名对象 补充知识:android Kotlin 继承、派生、接口、构造方式,方法、属性重写 前言 kotlin 作为google官方android 开发语言,大势所趋,据传到2018底kotlin要全面替
我通过学校为一项任务提供的简报创建了一个飞机座位预订系统。我遇到了一个我无法解决的主要问题。 摘要说明抽象类必须有一个抽象方法和大约4个公共方法。在抽象类的两个子类中,我们都必须初始化对象数组(所有普通的座位)。然而,一旦它们被初始化,我不知道如何将它们发送回抽象类(该类有一个检查未预订的飞机座位的方法,这就是我需要初始化的座位对象的地方) ArrayIndexOutOfBounds在一个应该在边
本文向大家介绍Kotlin 匿名类实现接口和抽象类的区别详解,包括了Kotlin 匿名类实现接口和抽象类的区别详解的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,还是上代码吧 接口: 抽象类: 看到区别了吗?哈哈,看不到没关系,我告诉你。 他们之间唯一的区别就是调用时的下面这句,抽象类多了一个括号。 object : OnBind object : AbstractOnBind() 就
问题内容: 我有一个第三方Java库,该对象的接口如下: 我如何像Java匿名类一样在Kotlin中简洁地实现它: 问题答案: 假设接口只有一种方法,则可以使用SAM 如果您有一个接受处理程序的方法,那么您甚至可以忽略类型参数: 如果接口具有多个方法,则语法会更加冗长:
问题内容: 在以下代码中,我创建了一个基本抽象类。我希望所有继承自其的类都提供该属性,因此我将该属性设置为。 然后,我创建了一个名为的子类,该子类旨在提供一些功能,但仍保持抽象。中没有属性,但是python实例化了该类的对象而没有错误。一个人如何创建抽象属性? 问题答案: 从Python 3.3 开始,修复了一个错误,这意味着装饰器现在应用于抽象方法时,可以正确地标识为抽象。 注:订单的问题,你必