我将尝试将一个接口的回调实现(该接口定义在类A中)赋值给另一个类B中定义的变量。假设类A有一个OnSomethingHappens接口,其中定义了一个doSomething方法。
在类B中,我已经像这样定义了我的回调变量:
我需要创建一个A类的实例,并通过构造函数传递回调变量,方法如下:
为什么?有哪些区别和可能的解决方案?
在类B中,我已经像这样定义了我的回调变量:
private lateinit var callback:A.OnSomethingHappens
我需要创建一个A类的实例,并通过构造函数传递回调变量,方法如下:
myinstanceA = A(callback)
我试图使用以下代码分配实现 A.OnSomethingHappens
的匿名类的实例:
callback = object : A.OnSomethingHappens {
override fun doSomething(..){
//here I put the implementation of this method
}
}
但编译器提示我的回调变量为"expecting member declaration",并且在对象中提示"name expected"。我做错了什么吗?
相反,我可以通过以下方式定义和同时分配回调变量:
private var callback = object : A.OnSomethingHappens {
override fun doSomething(..){
//here I put the implementation of this method
}
}
为什么?有哪些区别和可能的解决方案?