Aiun Geschrieben 20. Oktober 2008 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 20. Oktober 2008 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wayne Geschrieben 20. Oktober 2008 Teilen Geschrieben 20. Oktober 2008 Java Reflection ist hier das Stichwort. Siehe: Using Java Reflection Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.