2017-12-21 6 views
-4

わかりました、私はそれにいくつかのインタフェースを持っており、コードは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、どうすればこの問題を解決できますか?

+1

この質問は、アノテーション(['@ interface'](https://stackoverflow.com/questions/918393/whats-the-difference-between-interface-and-interface-in-java))に関するものです – Moira

+1

次回質問を投稿する前に問題が本当に存在することを確認してください。 – user882813

答えて

1

リンクされた質問は、ネストされたアノテーションクラスに関連しています。 あなたは問題なく巣のインタフェースをすることができます:私は、コンパイラは次のエラーがスローされます)getAllStreamsCallBack = IStreamRepository.OnGetAllStreamsCallbackを(行う{とOnGetAllStreamsCallbackインタフェースのメソッドをオーバーライドする}しようとすると、

interface Outer { 
    interface Inner 
} 

fun main(args: Array<String>) { 
    val o = object : Outer {} 
    val i = object : Outer.Inner {} 
} 
2

はOnGetAllStreamsCallbackコンストラクタ

を持っていない用量

ネストされていないインターフェイスでも同じエラーが発生します。構文はgetAllStreamsCallBack = object : IStreamRepository.OnGetAllStreamsCallback { ... }です。クラスの場合は、名前の後ろに()が必要です。

関連する問題