PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : java methoden sich selbst zur laufzeit hinzuzufügen?


Odal
2006-06-10, 19:46:37
(Wie) ist es möglich das ein Programm sich selbst zur Laufzeit methoden hinzufügt deren Methodennamen und Parameter erst zur Laufzeit bestimmt werden?

Trap
2006-06-10, 19:51:33
Mit reflections kann man bestehende Klassen ändern, mit sowas wie http://www.csg.is.titech.ac.jp/~chiba/javassist/ gehts noch besser.

Ansonsten kann man jederzeit zur Laufzeit neue Klassen nachladen und deren Methoden benutzen.

del_4901
2006-06-10, 20:06:56
Trap[/POST]']Mit reflections kann man bestehende Klassen ändern, mit sowas wie http://www.csg.is.titech.ac.jp/~chiba/javassist/ gehts noch besser.

Ansonsten kann man jederzeit zur Laufzeit neue Klassen nachladen und deren Methoden benutzen.

Wo du es gerade ansprichst, weiß jemand wie man in C++ einen String zur Laufzeit kompelliern kann (C++ Syntax) und natürlich auch in seinem Programm verwenden ... z.B um neue Klassen zu definieren etc.

Neomi
2006-06-10, 20:20:44
AlphaTier[/POST]']Wo du es gerade ansprichst, weiß jemand wie man in C++ einen String zur Laufzeit kompelliern kann (C++ Syntax) und natürlich auch in seinem Programm verwenden ... z.B um neue Klassen zu definieren etc.

Wenn du sowas halbschräges vorhast, solltest du Compiler und Linker deiner Wahl per Kommandozeile steuern, nachdem du eine Datei mit dem Source erstellt hast. Wenn du dir eine dynamische Bibliothek daraus erstellst, kannst du die danach laden und benutzen wie jede andere auch. Das wäre zumindest ein recht einfach funktionierender Weg, wenn der Umweg über Dateien und externe Programme akzeptabel ist.

del_4901
2006-06-10, 20:23:54
Neomi[/POST]']Wenn du sowas halbschräges vorhast, solltest du Compiler und Linker deiner Wahl per Kommandozeile steuern, nachdem du eine Datei mit dem Source erstellt hast. Wenn du dir eine dynamische Bibliothek daraus erstellst, kannst du die danach laden und benutzen wie jede andere auch. Das wäre zumindest ein recht einfach funktionierender Weg, wenn der Umweg über Dateien und externe Programme akzeptabel ist.

Ich dachte da gibs irgendwo schon alles fertig. Wo ich nur noch sagen muss, da Textdatei laden .. und dann den Code etc. da an den Pointer hängen ^^

Außerdem hat ja nicht jeder nen Compiler /Linker oben ... und mitliefern darf ich den bestimmt ned :|

Neomi
2006-06-10, 20:35:26
AlphaTier[/POST]']Ich dachte da gibs irgendwo schon alles fertig. Wo ich nur noch sagen muss, da Textdatei laden .. und dann den Code etc. da an den Pointer hängen ^^

Direkt im Speicher compilieren geht natürlich auch. Ob es fertigen Bibliotheken dafür gibt, weiß ich nicht, aber zur Not kannst du dir den passenden Teil ja aus den GCC-Sourcen nehmen. Unter der Vorraussetzung natürlich, daß die GPL sowas für deine Art von Projekt erlaubt.

del_4901
2006-06-10, 20:38:07
Neomi[/POST]']Direkt im Speicher compilieren geht natürlich auch. Ob es fertigen Bibliotheken dafür gibt, weiß ich nicht, aber zur Not kannst du dir den passenden Teil ja aus den GCC-Sourcen nehmen. Unter der Vorraussetzung natürlich, daß die GPL sowas für deine Art von Projekt erlaubt.

Ich glaub für den kleinen Einsatzzweck wo ich's benutz, bau ich mir meinen eigenen kleinen Compiler ^^ der muß ja keine Rekursion etc. beherschen.