首页 > Java > java教程 > 正文

如何执行 Java 中存储为字符串的代码?

Patricia Arquette
发布: 2024-10-25 03:15:30
原创
220 人浏览过

How Can You Execute Code Stored as a String in Java?

运行字符串中包含的代码

作为 Java 开发人员,您可能会遇到需要执行存储为字符串的代码的情况字符串变量。虽然 Java 没有为此提供直接机制,但您可以使用 Java 反射探索多种方法。

编译器 API

Java 编译器 API 允许您动态编译一串Java代码。以下是如何使用它:

<code class="java">import javax.tools.JavaCompiler;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;

// Compile the Java code string
String javaCode = "...";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
JavaCompiler.CompilationTask task = compiler.getTask(fileManager, null, null, null, null, javaCode);
task.call();</code>
登录后复制

Beanshell

Beanshell 是一种开源脚本语言,可以动态执行 Java 代码。它可用于评估您的 Java 代码字符串:

<code class="java">import bsh.Interpreter;

// Execute the Java code string using Beanshell
String javaCode = "...";
Interpreter interpreter = new Interpreter();
interpreter.eval(javaCode);</code>
登录后复制

反射

Java 反射允许您动态操作和调用类和方法。您可以使用它来创建由 Java 代码字符串定义的类的实例并调用其方法:

<code class="java">import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

// Create a class instance based on the Java code string
String className = "...";
Class<?> clazz = Class.forName(className);
Constructor<?> constructor = clazz.getConstructor();
Object instance = constructor.newInstance();

// Invoke a method on the class instance
String methodName = "...";
Method method = clazz.getMethod(methodName);
method.invoke(instance);</code>
登录后复制

这些只是动态执行 Java 字符串中包含的代码的几种方法。您选择的具体方法将取决于您的需求和项目架构。

以上是如何执行 Java 中存储为字符串的代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!