Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte mal fragen, kann man die String in Befehl wandeln? ( ähnlich wie java für Datenbank SQL, man kann String Befehl schreiben, und execute( Befehl ) ) ???
z.B
Java:
public class StringBefehlTest {
public static void Test(String classname) {
classname abc = new classname(); // Die Zeile ist natürlich falsch.... :(
}
public static void main(String[] args) {
String classname = "Integer";
Test(classname);
}
}
Ist es überhaupt möglich, String Befehl auszuführen? Gibt es so eine ähnliche Funktion wie "execute( String Befehl) " in SQL ?
Du willst also dynamisch Klassen laden, dann schau dir mal die Reflection an. Ansonsten wären vllt Generics noch etwas lesenswertes.
zum Verständnis:
Das execute beim SQL schickt ja nur deine Anfrage an die Datenbank. Die Datenbank wertet es dann aus bzw. versucht deine Anfrage zuverstehen.
Soetwas kannst du mit Reflection erreichen. Wenn der String mehrere Befehle enthält, musst du ihn eben auseinander bauen. Aber ob das sinnvoll und notwendig ist, sei mal dahingestellt:
Reflection ist das wohl mächtigste Feature von Java, denn ich kann auch private Elemente und Referenzen bearbeiten und damit die Anwendung mächtig überfordern. Grundsätzlich sollte man Reflection ur da einsetzen, wo es auch gebraucht wird
Du kannst auch eine ScriptEngine implementieren, dieser bestimmte Objekte übergeben und dann die Methoden der Klassen über die ScriptEngine ausführen.
z.B.
Java:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Util {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("util", new Util());
engine.eval("util.doSomething()");
}
public void doSomething() {
System.out.println("Hallo Welt");
}
}
Anstatt, dass der Compiler meckert und dein Programm nicht startet, fliegt dir jetzt irgendwann zur Laufzeit eine Exception um die Ohren weil der String falsch war... ich waere vorsichtig mit solchen Experimenten :shock:
(Edit: womit ich nicht sagen will, dass das alles nutzlos sei. Es gibt sicherlich Anwendungen für welche dies genau die richtige Lösung ist.)
bezweifel ich. Das mag vllt für Sonderfälle angenehm sein, aber i.d.R brauchst du Objekte, auf denen du arbeitest und natürlich auch Referenzen (ansonsten schlägt iwann der GC zu und du hast ein Problem!).