Maison > Java > javaDidacticiel > le corps du texte

Comment exécuter du code stocké sous forme de chaîne en Java ?

Patricia Arquette
Libérer: 2024-10-25 03:15:30
original
220 Les gens l'ont consulté

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

Exécuter du code contenu dans une chaîne

En tant que développeur Java, vous pouvez rencontrer des situations dans lesquelles vous devez exécuter du code stocké sous forme de variable de chaîne. Bien que Java ne fournisse pas de mécanisme direct pour cela, il existe plusieurs approches que vous pouvez explorer en utilisant la réflexion Java.

API du compilateur

L'API du compilateur Java vous permet de compiler dynamiquement une chaîne de code Java. Voici comment vous pouvez l'utiliser :

<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>
Copier après la connexion

Beanshell

Beanshell est un langage de script open source qui peut exécuter du code Java de manière dynamique. Il peut être utilisé pour évaluer votre chaîne de code Java :

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

// Execute the Java code string using Beanshell
String javaCode = "...";
Interpreter interpreter = new Interpreter();
interpreter.eval(javaCode);</code>
Copier après la connexion

Réflexion

La réflexion Java vous permet de manipuler et d'invoquer des classes et des méthodes de manière dynamique. Vous pouvez l'utiliser pour créer une instance d'une classe définie par votre chaîne de code Java et appeler ses méthodes :

<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>
Copier après la connexion

Ce ne sont là que quelques approches pour exécuter dynamiquement du code contenu dans une chaîne en Java. L'approche spécifique que vous choisirez dépendra de vos exigences et de l'architecture du projet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!