Hallo, gibt es eine Möglichkeit ein Teil-Code in einer Variable zu speichern und ihn dann nachher wieder so auszugeben, dass der code ausgeführt wird?
Code:
String code = "new 1stClass";
1stClass Object = code;
als äquivalent für
Code:
1stClass Object = new 1stClass;
so dass nachher eine instanz von der 1stClass-Klasse erstellt wird. Gibt es da auch zufällig ein verkuttungsoperator der es mir dann ermöglicht zu dem "code" noch etwas hinzuzufügen?
so in der art:
Mit dem Boardmitteln geht es nicht. In den meisten Fällen braucht man das auch nicht, sondern kann das designtechnisch sinnvoller lösen. Wenn man umbedingt dynamischen Code generieren will, könnte es vielleicht mit dem Compiler von Eclipse gehen. Denn gibt es irgendwo als Standalone Version, den kann man dann in sein Projekt einbauen. Allerdings muss ich meinen Vorrednern recht geben, normalerweise braucht man das nicht.
also wenn ein WebServer mehrere Klicks Deployment und 30 Sekunden Startzeit braucht, wünschte ich manchmal auch, ein einzelnes Semikolon dynamisch einfügen zu können..,
also wozu immer nach dem Grund fragen? in ein längere Zeit laufendes Programm beliebigen Code einfügen zu können wäre doch so toll, dass sich jede Rechtfertigung erübrigt,
geht nur leider nicht
also wenn ein WebServer mehrere Klicks Deployment und 30 Sekunden Startzeit braucht, wünschte ich manchmal auch, ein einzelnes Semikolon dynamisch einfügen zu können..,
also wozu immer nach dem Grund fragen? in ein längere Zeit laufendes Programm beliebigen Code einfügen zu können wäre doch so toll, dass sich jede Rechtfertigung erübrigt,
geht nur leider nicht
also wozu immer nach dem Grund fragen? in ein längere Zeit laufendes Programm beliebigen Code einfügen zu können wäre doch so toll, dass sich jede Rechtfertigung erübrigt,
geht nur leider nicht
Weil es eben nicht geht, macht es Sinn zu fragen, warum man das braucht. Den in den meisten Fällen gibt es elegante Lösungen, die ohne das auskommen. Ersteres lässt sich übrigens über ein Plugin System mit eigenem Classloader regeln, darüber kann man viel Code austauschbar machen, außer dem Kern der die Plugins läd
So kann man dynamisch Instanzen generieren, aber dazu muss es die entsprechende Klasse auch geben, d.h. sie muss mit dem entsprechenden Namen in dem entsprechenden Paket kompiliert vorliegen und mit dem ClassLoader ladbar sein.