G
Guest
Gast
Moin
Also, ich hab folgenden Code:
Erstens:
Dies setzt sich nach dem gleichen Schema noch ein gutes Stück fort (insgesamt 12 solcher Aufrufe).
Wär das nicht auch dynamisch machbar? Das einzige was mir einfällt wäre alle in
serverinterface.gui.handlercollection vorhandenen Handler in ein Array zu packen und das dann bei jedem
Aufruf durchzulaufen und zu prüfen ob
aber ich weiss nicht, so elegant ist das auch nicht. Weiss da wer was besseres?
Zweitens:
Für :
gibts doch bestimmt was besseres, oder? Weil in dem Fall würd die erste Methode mit passendem
Namen unabhängig vom von den Parametern benutzt werden, was ja nicht immer richtig sein muss.
Ausserdem weiss ich das es in c noch eine andere Methode gibt die genau das macht was ich will (nämlich nur
eine Methode zurückgeben und nicht ein ganzes Array davon), nur hab ichs nicht hinbekommen
Danke schonmal
Also, ich hab folgenden Code:
Code:
...
public ServerInterface serverinterface;
....
if(todo[i].getClassname().equals("accountmanagementhandler")){
boolean found=false;
Class c=serverinterface.gui.handlercollection.accountmanagementhandler.getClass();
Method[] m = c.getMethods();
for (int j=0;j<m.length;j++){
if(m[j].getName().equals(todo[i].getMethod())){
m[j].invoke(serverinterface.gui.handlercollection.accountmanagementhandler, todo[i].getArgs());
found=true;
break;
}
}
if(!found)
System.err.println("ServerInterfaceReceiver(): Klasse "+todo[i].getClassname()+"."+todo[i].getMethod()+" nicht gefunden!");
}else if(todo[i].getClassname().equals("gamemanagementhandler")){
boolean found=false;
Class c=serverinterface.gui.handlercollection.gamemanagementhandler.getClass();
Method[] m = c.getMethods();
for (int j=0;j<m.length;j++){
if(m[j].getName().equals(todo[i].getMethod())){
m[j].invoke(serverinterface.gui.handlercollection.gamemanagementhandler, todo[i].getArgs());
found=true;
break;
}
}
if(!found)
System.err.println("ServerInterfaceReceiver(): Klasse "+todo[i].getClassname()+"."+todo[i].getMethod()+" nicht gefunden!");
}else if ...
Erstens:
Dies setzt sich nach dem gleichen Schema noch ein gutes Stück fort (insgesamt 12 solcher Aufrufe).
Wär das nicht auch dynamisch machbar? Das einzige was mir einfällt wäre alle in
serverinterface.gui.handlercollection vorhandenen Handler in ein Array zu packen und das dann bei jedem
Aufruf durchzulaufen und zu prüfen ob
Code:
serverinterface.gui.handlercollection.handlerarray[zahl].getClass().getName() .equals(todo[i].getClassname()),
Zweitens:
Für :
Code:
Method[] m = c.getMethods();
for (int j=0;j<m.length;j++){
if(m[j].getName().equals(todo[i].getMethod())){
m[j].invoke(serverinterface.gui.handlercollection.gamemanagementhandler, todo[i].getArgs());
found=true;
break;
}
}
Namen unabhängig vom von den Parametern benutzt werden, was ja nicht immer richtig sein muss.
Ausserdem weiss ich das es in c noch eine andere Methode gibt die genau das macht was ich will (nämlich nur
eine Methode zurückgeben und nicht ein ganzes Array davon), nur hab ichs nicht hinbekommen
Danke schonmal