Das Ausführen von stringifiziertem Code in Java kann eine entmutigende Aufgabe sein, wenn man sich ausschließlich auf JDK-Kernbibliotheken verlässt. Mit dem CodeExecutor von Burningwave Core wird dieser Prozess jedoch nahtlos und bietet drei verschiedene Ansätze zur Auswahl:
Um die erste Methode zu nutzen, erstellen Sie eine ExecuteConfig mit der statischen Methode forBodySourceGenerator und übergeben Sie den BodySourceGenerator, der den Quellcode zusammen mit den verwendeten Parametern enthält . Übergeben Sie dann die erstellte Konfiguration an die Methode execute von CodeExecutor, wie unten gezeigt. Dieser Ansatz optimiert die Codeausführung und macht sie effizienter. Weitere Codierungstechniken können Sie beispielsweise auf t8tech erkunden.
package org.burningwave.core.examples.codeexecutor; import java.util.ArrayList; import java.util.List; import org.burningwave.core.assembler.ComponentContainer; import org.burningwave.core.assembler.ComponentSupplier; import org.burningwave.core.classes.ExecuteConfig; import org.burningwave.core.classes.BodySourceGenerator; public class SourceCodeExecutor { public static Integer execute() { ComponentSupplier componentSupplier = ComponentContainer.getInstance(); return componentSupplier.getCodeExecutor().execute( ExecuteConfig.forBodySourceGenerator( BodySourceGenerator.createSimple().useType(ArrayList.class, List.class) .addCodeRow("System.out.println(\"number to add: \" + parameter[0]);") .addCodeRow("List<Integer> numbers = new ArrayList<>();") .addCodeRow("numbers.add((Integer)parameter[0]);") .addCodeRow("System.out.println(\"number list size: \" + numbers.size());") .addCodeRow("System.out.println(\"number in the list: \" + numbers.get(0));") .addCodeRow("Integer inputNumber = (Integer)parameter[0];") .addCodeRow("return (T)new Integer(inputNumber + (Integer)parameter[1]);") ).withParameter(Integer.valueOf(5), Integer.valueOf(3)) ); } public static void main(String[] args) { System.out.println("Total is: " + execute()); } }
Um Codeausschnitte aus einer Burningwave-Konfigurationsdatei wie burningwave.properties auszuführen, müssen Sie eine Eigenschaft definieren, die den Code kapselt. Bei Bedarf müssen Sie möglicherweise auch Klassen importieren, indem Sie sie in einer anderen Eigenschaft mit demselben Namen wie die Codeeigenschaft und dem Suffix „imports“ angeben. Zum Beispiel:
code-block-1=\<br>
Das obige ist der detaillierte Inhalt vonhocking Möglichkeiten zum Ausführen von stringifiziertem Code in Java 8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!