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 ,我该如何解决这个问题?

2 Solutions collect form web for “Kotlin中的嵌套接口替代方法”

当我尝试做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 {} } 
  • 如何从包类名字符串中获取Kotlin KClass?
  • 我怎样才能抑制未经检查的强制性警告?
  • Java类名中的Kotlin中的静态常量
  • 在Android工作室中运行Kotlin Koan
  • 如何创建一个适用于所有Android设备的时间触发通知
  • Android Studio 3 canary&Kotlin
  • 为什么可以在子types的重载成员函数中省略默认值?
  • forEach里面forEach在Kotlin
  • 我怎样才能从Kotlin的数组列表中筛选出一个值呢?
  • Kotlin:调用函数从BroadcastReceiver onReceive更新UI
  • 在使用arrayOfNulls时,是否可以删除Kotlin中未经检查的转换?
  • Kotlin language will be the best programming language for Android.