从方法返回 Retrofit POJO

Returning Retrofit POJO from method

也许你能帮我。我在 return 形成一个方法时遇到了一些问题,POJO 是通过改造生成的。

我需要通过 class 方法 return 改造生成的 pojo,并对 de pojo 进行一些修改。

这是方法:

public MensajeError iniciarSesion(String usuario,String password)

这是方法实现:

    public MensajeError iniciarSesion(String usuario,String password) {
    Conector apiService =
            restAdapter.create(Conector.class);

    apiService.iniciarSesion(usuario, password, new Callback<MensajeErrorR>() {
        @Override
        public void success(MensajeErrorR mensajeErrorR, Response response) {


        }

        @Override
        public void failure(RetrofitError error) {
            Log.v("TAG", "ACA HAY QUE HACER EL MANEJO DEL ERROR");
        }

    });
    //here I need to get the mensajeErrorR pojo and make some modifications, and then return it.

    return mensajeErrorR; //Maybe I will return another class, but with data from de POJO 
}

如何从成功方法中获取mesajeErrorR pojo?在成功方法内部一切正常,我可以毫无问题地看到 mesajeErrorR 值,我不知道如何访问此方法之外的数据。

抱歉我的英语不好 xD

谢谢!!

有两个答案:

一,就是在你的Connector接口中改变声明

void iniciarSesion(String usuario, String password, Callback<MensajeErrorr> callback);

MensajeError iniciarSession(String usuario, String password

那么你可以这样写:

MensajeError error = iniciarSession(usuario, password);

你的方法有误。也就是说,如果在 UI 线程上调用您的 iniciarSesion 方法,这将不起作用 - 将抛出异常,因为您不允许在主线程上进行网络调用。

第二个答案是你不能真正访问你的方法中的错误对象。它由回调接收,您所能做的就是重构代码,以便修改 sucess 回调中的错误对象,并使用修改后的数据调用另一个侦听器。