也许你可以帮助我。我从一个方法返回时遇到了一些问题,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
谢谢!
答案 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中修改错误对象,并使用修改后的数据调用另一个侦听器。