Aiun Geschrieben 20. Oktober 2008 Geschrieben 20. Oktober 2008 hi, folgendes Scenario: ich habe eine Art Scripting Sprache, z.B. für ein Spiel, Programm o.ä., um flexibel über eine Textkonsole in bestimmte abläufe einzugreifen. jetzt sieht es so aus, das unter einem Alias dem Scripting-Controller bestimmte Objekte "bekannt" sind. Window, user, .... und ich wenn ich sage "window.callmydumpfunctionplease('myparam')" genau diese Funktion aufrufen will und ihr einen String-parameter übergeben möchte. Die Frage ist: wie. Ich parse den String aus der Konsole, habe dann also obj, String: Window func, String: callmydumpfunctionplease param, String: myparam gibt es eine funktion obj.callFunc(param); oder so, oder wie könnte ich das am sinnvollsten erreichen? edit: ein Check ob die Funktion existiert, falls nicht automatisch mit exception würde ich natürlich auch gerne vorher machen. danke
flashpixx Geschrieben 20. Oktober 2008 Geschrieben 20. Oktober 2008 So ganz klar ist mir das Problem nicht, also den Versuch ins blaue: Du hast in dem dem Parameter String alle Paremeter nehme ich an, und diese willst Du nun an die Methode übergeben, also mir ist in Java nichts bekannt womit man das so direkt erreichen kann. Ich würde den Parameterstring noch mals parsen und den String entsprechend Parameterweise in die benutzen Typen umwandeln. Bzw ich würde alle Parameter als Object ablegen und das als ArrayList o.ä. und dann die Konvertierung innerhalb der Methode durchführen. Ich denke eine "freie Bindung" ist nicht möglich, da die Methodenaufrufe zur Kompilzeit inkl. der Typen fest gelegt wird Phil
Wayne Geschrieben 20. Oktober 2008 Geschrieben 20. Oktober 2008 Java Reflection ist hier das Stichwort. Siehe: Using Java Reflection
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden