2014-09-03 6 views
5

Я пытаюсь реализовать пример от here в Котлине. Я получаю эту ошибку во время выполнения «Caused by: java.lang.IllegalArgumentException: определения интерфейсов не должны расширять другие интерфейсы». Есть ли способ трактовать черты Kotlin как интерфейсы java, когда у них нет каких-либо методов, или мне нужно использовать java-интерфейсы? Вот код:Характеристики и модификация Котлина

public trait RestAPI { 

    [GET("/weather")] 
    fun getList([Query("q")] place: String, 
       [Query("units")] units: String) 
      : Observable<WeatherData> 
}    

И вызов, который вызывает ошибку:

val service = restAdapter?.create(javaClass<RestAPI>()) 
+0

Обсуждаемый трекер для журнала Kotlin: http://youtrack.jetbrains.com/issue/KT-5609 –

+1

@ user1202036 Вы можете просмотреть приведенный ниже ответ и принять его, если он точна. Котлин переименовал 'trait' в' interface' и несколько изменил семантику. И проблема, упомянутая выше, была решена. –

ответ

7

Эта проблема была решена. Я использую Retrofit, реализованный именно таким образом с Kotlin версии 0.9.976.