Kotlin中的嵌套接口替代方法

好吧,我有一个接口,其中有很少的接口,在Kotlin代码看起来像这样

interface IStreamRepository : IBaseRepository { interface OnAddStreamCallback { fun onSuccess() fun onError(message: String) } interface OnGetAllStreamsCallback { fun onSuccess(streams: ArrayList) 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 ,我该如何解决这个问题?

当我尝试做getAllStreamsCallBack = IStreamRepository.OnGetAllStreamsCallback(){和重写OnGetAllStreamsCallback接口中的方法}编译器会抛出以下错误OnGetAllStreamsCallback剂量没有构造函数

你会得到与非嵌套接口相同的错误。 语法是getAllStreamsCallBack = object : IStreamRepository.OnGetAllStreamsCallback { ... } 。 如果它是一个类,你需要()在名字后面,对于一个你不需要的接口。

链接的问题与嵌套的注记类有关。 你可以嵌套接口没有问题:

 interface Outer { interface Inner } fun main(args: Array) { val o = object : Outer {} val i = object : Outer.Inner {} }