Ich habe eine Reihe von Klassen, jede mit Methoden mit den gleichen Namen, aber verschiedenen Funktionen. Ich frage mich, wie ich die benötigte Klasse in Form einer Zeichenfolge referenzieren kann, da sie auf Benutzereingaben basiert.Aufruf Methode aus der Klasse "x", eine Zeichenfolge gegeben, die gleich "x"?
So etwas ... (Ich weiß, dass dies nicht funktioniert, es kommt auf die Idee über though)
Szenario A:
String userinput = "Duck"
int result = "Duck".feed(parameter A);
Szenario B:
String userinput = "Dog"
int result = "Dog".feed(parameter A);
Hypothetisch gibt es> 20 Klassen, und diejenige, die benötigt wird, kann nur aus der Zeichenkette bestimmt werden.
Ja. Dies kann durch Reflexion erfolgen. Sie müssen diese Klasse abrufen und 'newInstance()' darauf aufrufen. Sie werden eine Instanz davon bekommen. Dann können Sie jede Methode darin aufrufen – TheLostMind
Verwenden Sie keine Reflexion. Vermeiden Sie schlechte Angewohnheiten und lesen Sie über Vererbung, Polymorphismus und das Fabrikmethodenmuster nach. –
Sie könnten eine 'Map' verwenden, wobei 'BaseClass' die Basisklasse mit der' feed' Methode ist (implementiert durch Unterklassen). Sie rufen dann 'yourMap.get (" Dog "). Feed (Parameter)'. Andernfalls müssen Sie die Reflexion verwenden. –
BackSlash