我是Kotlin的新手。我正在尝试将旧的Java代码转换为Kotlin。当我尝试创建一个新的Handler并覆盖handleMessage()方法时,我得到了一个答案:How to use Handler and handleMessage in Kotlin?
priv val mHandler = object:Handler(){
override fun handleMessage(msg: Message?) {
// Your logic code here.
}
}
我不明白“对象:”代表什么,为什么我们在这里需要它?当我尝试val mHandler = Hander(){}时出现错误,我无法覆盖handleMessage()
答案 0 :(得分:2)
这只是Kotlin继承/实现匿名类并创建一个新类的方法,而不是就地创建它。
Java:
//Define an interface (or a class):
public interface Runnable {
void run();
}
//Create an anonymous class and instantiate it:
Runnable runnable = new Runnable() {
@Override
void run() {
//Do something here
}
}
科特琳:
//Define an interface (or a class):
interface Runnable {
fun run()
}
//Create an anonymous class and instantiate it:
val runnable = object: Runnable() {
override fun run() {
//Do something here
}
}
如果您没有编写object:
部分,则意味着您正在实例化接口/超类本身。接口和抽象类是不可能的。另外,在{}
之后加上()
而没有object:
也是语法错误。