SignalR for Android: how can I pass dynamic class to SubscriptionHandler1 -


i have method startsignalr calling

mhub.on("broadcastmessage",                 new subscriptionhandler1<custommessage>() {                     @override                     public void run(final custommessage msg) {                         final string finalmsg = msg.username + ": " + msg.message;                         system.out.println(finalmsg);                                             }                 }                 , custommessage.class); 

now wanna dynamic class (not custommessage) passed method, have used class <t> tclass parameter of "startsignalr", error @

new subscriptionhandler1<tclass>() 

would please tell me how solve this?

i have found solution

public <t> void startsignalr(string transport, string serverurl, final string username, final class<t> tclass) {      platform.loadplatformcomponent(new androidplatformcomponent());     credentials credentials = new credentials() {         @override         public void preparerequest(request request) {             request.addheader(header_key_username, username);         }     };      mconnection = new hubconnection(serverurl);     mconnection.setcredentials(credentials);     mhub = mconnection.createhubproxy(server_hub_chat);      if (transport.equals("serversentevents")) {          mtransport = new serversenteventstransport(mconnection.getlogger());     } else if (transport.equals("longpolling")) {          mtransport = new longpollingtransport(mconnection.getlogger());     }      mawaitconnection = mconnection.start(mtransport);      try {         mawaitconnection.get();     } catch (interruptedexception e) {               e.printstacktrace();               return;     } catch (executionexception e) {          e.printstacktrace();         return;     }      mhub.on("broadcastmessage",             new subscriptionhandler1<object>() {                 @override                 public void run(final object msg) {                     final string finalmsg;                     gson gson = new gson();                     object object = gson.fromjson(msg.tostring(), tclass);                     field[] fields = object.getclass().getdeclaredfields();                     (int = 0; < fields.length; i++) {                         try {                             system.out.println("value = " + fields[i].get(object));                                                         } catch (exception e) {                             e.printstacktrace();                         }                     }                                         }             }             , object.class);      ... } 

Comments