将字符串转换为可执行代码:Java 编译器 API 之旅
在编程领域,需要将字符串转换为可编译的代码。其中一种情况涉及检索存储在数据库中的比较表达式并在条件结构中对其进行评估。
为了开展这一工作,Java 6 通过 Java 编译器 API 提供了一种解决方案。通过利用 JavaCompiler 类,可以直接在内存中构造 Comparator 对象的源代码。
警告: 由于潜在的安全问题,在处理任意 Java 代码时请小心谨慎。
Java 编译器 API 实际应用
看一眼进入正在运行的 Java 编译器 API:
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();
借助这种新发现的功能,您可以轻松地将 Java 表达式存储在数据库中,相应地引用“a”和“b”。
以上是Java 编译器 API 如何将数据库字符串转换为可执行的比较器代码?的详细内容。更多信息请关注PHP中文网其他相关文章!