Ответ 1
Невозможно иметь базовый интерфейс дооснащения.
Дооснащение способствует составу над наследованием. Один интерфейс для каждой службы.
Итак, как вы уже выяснили, единственным решением является создание трех независимых интерфейсов.
У меня возникает следующая проблема с помощью Retrofit 2 beta 2:
java.lang.IllegalArgumentException: API interfaces must not extend other interfaces.
Это связано с тем, что у меня есть один интерфейс для API для переоснащения:
public interface RetrofitBaseAPI {
@POST
Call<LoginResp> login(@Url String url, @Body LoginReq loginReq);
@POST
Call<String> logout(@Url String url, @Header("Cookie") String sid);
}
Например, один из них:
public interface RetrofitWiserLinkAPI extends RetrofitBaseAPI {
@GET("/rs/DeviceIdentification")
Call<DeviceId> getDeviceIdentification(@Header("Cookie") String sid);
}
И затем у меня есть три других интерфейса, три из которых простираются от этого интерфейса RetrofitBaseAPI.
Когда я пытаюсь вызвать retrofit.create(класс класса) с данным интерфейсом, я всегда получаю эту ошибку.
Насколько я читал, единственным решением является создание трех независимых интерфейсов. Это правда? Кто-нибудь знает другое решение?
Я нахожу немного странным, что нам нужно дублировать код, но хорошо, может быть, есть причина, по которой я не понимаю.....
Спасибо заранее!
Спасибо,
EDIT: та же проблема с использованием окончательной версии Retrofit 2. Я предполагаю, что это ограничение от Retrofit....
Невозможно иметь базовый интерфейс дооснащения.
Дооснащение способствует составу над наследованием. Один интерфейс для каждой службы.
Итак, как вы уже выяснили, единственным решением является создание трех независимых интерфейсов.