如何在Java中将String转换为Function?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Java中将String转换为Function?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1381字,纯文字阅读大概需要2分钟。
内容图文
![如何在Java中将String转换为Function?](/upload/InfoBanner/zyjiaocheng/750/f9299193b66342eb8dc34f835df2f4ca.jpg)
在stackoverflow here上有一个与此相同标题的问题,但我想问一下是否有可能在Java中做类似的事情.
我想做一些类似于desmos的东西,就像那个人在Javascript中做的那样,但是我想用Java来使用lwjgl 2.我是Java的新手,我想知道是否可以转换一块字符串转换为方法.可能吗?
我已经找到了可能的选项,我发现你可以制作自己的Java eval()方法.但是我不想为窗口宽度的每个像素替换字符串中的x.
提前致谢.
解决方法:
你需要的是一个可以计算表达式的引擎/库,在执行时定义为字符串.如果将评估代码包装到函数调用中(例如lambda函数),您将获得所需的内容.
选项1:您可以使用exp4j. exp4j是一个小型脚本库,能够在执行时评估表达式和函数.这是一个例子:
Expression e = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
.variables("x", "y")
.build()
.setVariable("x", 2.3)
.setVariable("y", 3.14);
double result = e.evaluate();
选项2:您可以使用Java’s script engine.您可以使用它来评估定义的表达式,例如,在JavaScript中:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
Object result = engine.eval("sin(1.25)");
选项3:编译为本机Java.使用此方法,您可以使用模板生成包含表达式的类的.java文件.比你调用Java编译器.这种方法的缺点是在实现中有一些复杂性和一些初始延迟(直到编译类),但性能是最好的.以下是一些探索链接:
> Create dynamic applications with javax.tools
>特别是javax.tools.Compiler
注意事项无论您选择何种方法,请记住您需要考虑安全性.允许用户输入可以在没有安全限制的情况下进行评估的代码可能非常危险.
内容总结
以上是互联网集市为您收集整理的如何在Java中将String转换为Function?全部内容,希望文章能够帮你解决如何在Java中将String转换为Function?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。