2017-12-21 17 views
-4

좋아 나는 거기에 몇 가지 인터페이스를 가지고 있으며, 코드가 코 틀린중첩 된 인터페이스의 대안

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 인터페이스의 메소드를 오버라이드 (override)} 할 때

interface Outer { 
    interface Inner 
} 

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

는 OnGetAllStreamsCallback 생성자

이없는 복용량

중첩되지 않은 인터페이스에서 동일한 오류가 발생합니다. 구문은 getAllStreamsCallBack = object : IStreamRepository.OnGetAllStreamsCallback { ... }입니다. 클래스 인 경우 이름 뒤에 ()이 필요합니다. 그렇지 않은 인터페이스의 경우.