我正在使用retrofit与Web服务进行通信。服务器返回包含success(布尔值)的响应JSON,并且如果success为false,则响应还包含message(字符串)。但是,如果success为true,则响应将包含请求结果,例如,取决于请求的用户或单个用户或其他用户的List 。public class User { public String fullname,phone;}改造API:public interface DemoAPI {@GET("/users/{id}")void getUserInformation(@Path("id") int userID, Callback<User> callback);@FormUrlEncoded@POST("/login")void login(@Field("username") String username, @Field("password") String password,Callback<??> callback);}问题是,例如,如果我要登录用户并返回其User信息,该怎么办?然后,回调应同时包含用户对象和success + message值(如果需要,则包含消息),但是由于某些请求返回了User,因此我无法将这些值放在单个List<User>中。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我看到它已经解决了,但是我已经写了这个,所以我想把它发布为一个可视示例。您需要创建一个Response类来处理不同类型的请求响应。对于您的登录,您可能会遇到类似public class LoginResponse { public Boolean success; public String message; public User user;}在success为true的情况下,将分配User对象,但在success为false的情况下,将设置消息,并且该user对象为null。您的登录休息界面将变成类似@FormUrlEncoded@POST("/login")void login(@Field("username") String username, @Field("password") String password, Callback<LoginResponse> callback);这样,您仍然可以按原样使用模型User对象,而无需对其进行更改。您还可以根据需要为不同的rest接口创建更多* Response类。 (adsbygoogle = window.adsbygoogle || []).push({});