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.properties와 같은 Burningwave 구성 파일에서 코드 조각을 실행하려면 코드를 캡슐화하는 속성을 정의해야 합니다. 필요한 경우 코드 속성과 이름이 같고 접미사가 'imports'인 다른 속성에 클래스를 지정하여 클래스를 가져와야 할 수도 있습니다. 예를 들면 다음과 같습니다.
code-block-1=\<br>
위 내용은 Java 8에서 문자열화된 코드를 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!