2017-01-10 7 views
0

Использование Ion по Коуш, мне нужно сделать JSON запрос, который я бросил прямо в type, таким образом:Добавить больше типов в Ion Response

public interface UserCallback extends FutureCallback<Response<User>> {} 

Builders.Any.B builder; 

TypeToken<User> userType = new TypeToken<User>() {} 

void userRequest(Context ctx, UserCallback callback) { 
    builder = Ion.with(context).load("GET", "https://myendpoi.nt/"); 
    builder.as(userType).withResponse().setCallback(callback); 
} 

userRequest(getApplicationContext(), 
    new UserCallback() { 
     @Override 
     public void onCompleted(Exception ex, Response<User> result) { 

      // Cast my spell with User object... 

     } 
    }); 

проблемы является: когда-сервер отвечает с JSON что не могут быть отражены в классе User, но необходимо перейти в другой объект (например, Pet.class).

Ну, я знаю, что могу получить ответ как общий JsonObject и произнести его впоследствии, но мой вопрос: есть ли более элегантный способ сделать это? Можно добавить 2 Response в FutureCallback? поэтому я могу сделать такую ​​вещь:

public interface UserCallback extends FutureCallback<Response<User>, Response<Pet>> {} 

или что-то еще?

Большое спасибо.

ответ

0

продлить User класс в Pet классом или другим способом и использовать базовый класс в FutureCallback. Затем отбрасывать в какой-либо класс нужно позже в ответ.

+0

Но у меня есть класс 'Pet' со способами и свойствами класса' User' (или наоборот), это не то, что я хочу. –