栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java将字符串转换为代码

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java将字符串转换为代码

如果你使用的是Java 6,则可以尝试使用Java Compiler API。其核心是JavaCompiler类。你应该能够

Comparator
在内存中构造对象的源代码。

警告:由于某些奇怪的原因,我的平台上不存在JavaCompiler对象,因此我实际上并未尝试下面的代码…

警告:编译任意Java代码可能会危害你的健康。

考虑一下自己被警告…

String comparableClassName = ...; // the class name of the objects you wish to compareString comparatorClassName = ...; // something random to avoid class name conflictsString source = "public class " + comparatorClassName + " implements Comparable<" + comparableClassName + "> {" +     "    public int compare(" + comparableClassName + " a, " + comparableClassName + " b) {" +     "        return " + expression + ";" +     "    }" +     "}";JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();Writer out = null;JavaFileManager fileManager = null;DiagnosticListener<? super JavaFileObject> diagnosticListener = null;Iterable<String> options = null;Iterable<String> classes = null;Iterable<? extends JavaFileObject> compilationUnits = new ArrayList<? extends JavaFileObject>();compilationUnits.add(    new SimpleJavaFileObject() {        // See the JavaDoc page for more details on loading the source String    });compiler.getTask(out, fileManager, diagnosticListener, options, classes, compilationUnits).call();Comparator comparator = (Comparator) Class.forName(comparableClassName).newInstance();

之后,你只需要在数据库字段中存储适当的Java表达式,

a
并引用和即可b。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506639.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号