java - How to return from a method with an inner class -


i'm new java , have method i'm trying use wrapper async server call parse.com. want return custom object containing info call, "error: unknown class" i'm trying prevent method returning until done() called.

im not sure how java handle kind of thing, i'm used working in objective-c. know how can have return statement not called until set properties in done() ?

public serverresponse getrestaurauntprofile(){      parsequery<parseobject> profilequery = parsequery.getquery("restaurant");     profilequery.whereequalto("user", parseuser.getcurrentuser());     profilequery.findinbackground(new findcallback<parseobject>() {      final serverresponse mresponse = new serverresponse();          @override         public void done(list<parseobject> list, parseexception e) {              if (e == null) {                 mresponse.setreturnobject(list.get(0));                 mresponse.setreturnexception(null);              } else {                 mresponse.setreturnobject(null);                 mresponse.setreturnexception(e);              }          }          return mresponse;      }); } 

an excellent solution utilize retrofit square. retrofit excellent library handling asynchronous network calls. user alfasin said in comments, trying force asynchronous method act synchronously, big no no in android. if want continue using current code structure, can restructure this:

public void getrestaurauntprofile(){       parsequery<parseobject> profilequery = parsequery.getquery("restaurant");     profilequery.whereequalto("user", parseuser.getcurrentuser());     profilequery.findinbackground(new findcallback<parseobject>() {      final serverresponse mresponse = new serverresponse();          @override          public void done(list<parseobject> list, parseexception e) {              if (e == null) {                  mresponse.setreturnobject(list.get(0));                 mresponse.setreturnexception(null);                 handleresponse(mresponse);             } else {                  mresponse.setreturnobject(null);                 mresponse.setreturnexception(e);                 handleresponse(mresponse);             }          }      });  }  public void handleserverresponse(serverresponse mresponse){     //do whatever code handling need here } 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -