當只依賴 JDK 核心函式庫時,在 Java 中執行字串化程式碼可能是一項艱鉅的任務。然而,使用 Burningwave Core 的 CodeExecutor,這個過程變得無縫,提供三種不同的方法可供選擇:
要利用第一個方法,請使用靜態方法 forBodySourceGenerator 建立一個 ExecuteConfig,傳入包含原始程式碼以及所使用的參數 BodySourceGenerator 。然後,將建立的配置傳遞給 CodeExecutor 的 execute 方法,如下所示。這種方法簡化了程式碼執行,使其更有效率。例如,您可以在 t8tech 上探索更多編碼技術。
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()); } }
要執行 Burningwave 設定檔中的程式碼片段,例如 burningwave.properties,您需要定義一個封裝程式碼的屬性。如有必要,您可能還需要透過在另一個與 code 屬性同名的屬性中指定類別(後綴為「imports」)來匯入類別。例如:
code-block-1=\<br>
以上是在 Java 8 中運行字串化程式碼的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!