Android Kotlin中的嵌套接口替代方案
好的,我有一个接口,里面很少有接口,代码在Kotlin中是这样的Android Kotlin中的嵌套接口替代方案,android,kotlin,Android,Kotlin,好的,我有一个接口,里面很少有接口,代码在Kotlin中是这样的 interface IStreamRepository : IBaseRepository { interface OnAddStreamCallback { fun onSuccess() fun onError(message: String) } interface OnGetAllStreamsCallback { fun onSuccess(streams: ArrayList<Stre
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)
}
}
编译器抛出以下错误
OnGetAllStreamsCallback没有构造函数
,如何解决此问题?链接的问题与嵌套注释类相关。
您可以无问题地嵌套接口:
interface Outer {
interface Inner
}
fun main(args: Array<String>) {
val o = object : Outer {}
val i = object : Outer.Inner {}
}
接口外部{
界面内部
}
趣味主线(args:Array){
val o=对象:外部{}
val i=对象:外部.内部{}
}
当我尝试执行getAllStreamsCallBack=IStreamRepository.OnGetAllStreamsCallback(){并重写OnGetAllStreamsCallback接口中的方法}时,编译器会在OnGetAllStreamsCallback没有构造函数时抛出以下错误
对于非嵌套接口,也会出现同样的错误。语法是
getAllStreamsCallBack=object:IStreamRepository.OnGetAllStreamsCallback{…}
。如果它是一个类,您需要在名称后面加上()
,而对于一个您不需要的接口。这个问题涉及注释(),请在下次发布问题之前确保问题确实存在。
interface Outer {
interface Inner
}
fun main(args: Array<String>) {
val o = object : Outer {}
val i = object : Outer.Inner {}
}