sto avendo il problema successivo utilizzando Retrofit 2 beta 2:interfacce API non devono estendere altre interfacce Retrofit 2
java.lang.IllegalArgumentException: API interfaces must not extend other interfaces.
Questo è perché ho una sola interfaccia per l'API di Retrofit in questo modo:
public interface RetrofitBaseAPI {
@POST
Call<LoginResp> login(@Url String url, @Body LoginReq loginReq);
@POST
Call<String> logout(@Url String url, @Header("Cookie") String sid);
}
Per esempio, uno di loro è questa:
public interface RetrofitWiserLinkAPI extends RetrofitBaseAPI {
@GET("/rs/DeviceIdentification")
Call<DeviceId> getDeviceIdentification(@Header("Cookie") String sid);
}
E poi, ho altri tre interfacce, le tre del m si estende da questa interfaccia RetrofitBaseAPI.
Quando provo a chiamare retrofit.create (classe Class) con l'interfaccia specificata, ricevo sempre questo errore.
Per quanto ho letto, l'unica soluzione è creare tre interfacce indipendenti. È vero? Qualcuno conosce un'altra soluzione?
trovo un po 'strano che abbiamo bisogno di duplicare il codice, ma bene, forse c'è una ragione che non capisco .....
Grazie in anticipo!
Grazie,
EDIT: Stesso problema utilizzando la versione finale Retrofit 2 rilascio. Immagino che si tratti di una limitazione da Retrofit ....
no, non è possibile. Puoi leggere di più [qui] (https://github.com/square/retrofit/pull/676) – Blackbelt
Grazie mille per la tua risposta! E la restrizione è per ogni particolare motivo di prestazioni, desing, ecc ??? O è solo per ridurre i possibili casi d'uso? – zapotec
@zapotec "Il retrofit favorisce la composizione e questo PR aggiunge ereditarietà". ha detto qualcuno ... –