好吧,我有一个接口,其中有很少的接口,代码在Kotlin
中看起来像这样interface IStreamRepository : IBaseRepository {
interface OnAddStreamCallback {
fun onSuccess()
fun onError(message: String)
}
interface OnGetAllStreamsCallback {
fun onSuccess(streams: ArrayList<Stream>)
fun onError(message: String)
}
interface OnGetStreamByNameCallback {
fun onSuccess(stream: Stream)
fun onError(message: String)
}
interface OnDeleteStreamCallback {
fun onSuccess()
fun onError(message: String)
}
}
当我尝试做的时候
getAllStreamsCallBack = IStreamRepository.OnGetAllStreamsCallback() {
//and override methods in OnGetAllStreamsCallback interface
}
编译器抛出以下错误OnGetAllStreamsCallback does not have constructors
,我该如何解决这个问题?
答案 0 :(得分:2)
链接的问题与嵌套的注释类有关。 您可以毫无问题地嵌套接口:
interface Outer {
interface Inner
}
fun main(args: Array<String>) {
val o = object : Outer {}
val i = object : Outer.Inner {}
}
答案 1 :(得分:2)
当我尝试执行getAllStreamsCallBack = IStreamRepository.OnGetAllStreamsCallback(){并覆盖OnGetAllStreamsCallback接口中的方法时}编译器抛出以下错误OnGetAllStreamsCallback剂量没有构造函数
使用非嵌套接口会出现相同的错误。语法为getAllStreamsCallBack = object : IStreamRepository.OnGetAllStreamsCallback { ... }
。如果是一个类,那么在名称后面需要()
,对于你不需要的接口。