Convertir des chaînes en code exécutable : un voyage avec l'API du compilateur Java
Dans le domaine de la programmation, il est nécessaire de transformer les chaînes en code compilable. L'une de ces circonstances consiste à récupérer une expression comparative stockée dans une base de données et à l'évaluer dans une structure conditionnelle.
Pour se lancer dans cette entreprise, Java 6 propose une solution via l'API Java Compiler. En tirant parti de la classe JavaCompiler, il devient possible de construire le code source d'un objet Comparator directement en mémoire.
Attention : Soyez prudent lorsque vous traitez du code Java arbitraire en raison de problèmes de sécurité potentiels.
API du compilateur Java en action
Voici un aperçu de API du compilateur Java en action :
String comparableClassName = ...; String comparatorClassName = ...; String source = "public class " + comparatorClassName + " implements Comparable<" + comparableClassName + "> {" + " public int compare(" + comparableClassName + " a, " + comparableClassName + " b) {" + " return " + expression + ";" + " }" + "}"; //... Comparator comparator = (Comparator) Class.forName(comparableClassName).newInstance();
Avec cette nouvelle puissance, vous pouvez facilement stocker des expressions Java dans votre base de données, en référençant « a » et « b » en conséquence.
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!