从方法返回改造POJO

时间:2015-09-26 18:01:09

标签: android web-services retrofit

也许你可以帮助我。我从一个方法返回时遇到了一些问题,POJO是通过改造生成的。

我需要从类方法中返回使用改造生成的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 
}

如何从success方法中获取mesajeErrorR pojo?在成功方法的内部一切都很好,我能够毫无问题地看到mesajeErrorR值,我不知道如何访问此方法之外的数据。

抱歉我的英文xD

谢谢!

1 个答案:

答案 0 :(得分:0)

有两个答案:

一,在您的Connector界面中更改声明

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

MensajeError iniciarSession(String usuario, String password

然后你可以写:

MensajeError error = iniciarSession(usuario, password);

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

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