gpt4 book ai didi

java - 在运行时将字符串解析为 Java 代码

转载 作者:行者123 更新时间:2023-11-30 08:23:32 24 4
gpt4 key购买 nike

我有一个用 Java 编写的筛选应用程序,它允许我根据公司的基本面(例如税前利润、股息 yield 等)筛选公司。

我已经创建了一个过滤引擎,目前它是硬编码的,可以采用编译时提供的过滤器。

我想做的是打开一个 Web 服务,我可以在其中传入 JSON 以使用在运行时定义和传入的过滤器运行过滤。

为此,我需要以某种方式将字符串转换为 Java 代码。

例如,JSON 中的以下字符串:

current.preTaxProfit > previous.preTaxProfit

像这样转换成 Java 代码:

return current.getPreTaxProfit() > previous.getPreTaxProfit();

我遇到的主要问题是解析数学字符串,例如:

current.preTaxProfit > (previous.preTaxProfit * 1.10)

事情可能会很快变得非常复杂,尤其是涉及到内括号等以及遵守 BODMAS 时。

是否有专门用于解析数学字符串的库,或者有谁知道可以帮助我的好资源吗?

例如,我发现了这个:

Java 助手:http://davidwinterfeldt.blogspot.co.uk/2009/02/genearting-bytecode.html

有没有人有使用Javaassist的经验?在我的架构中,我传递了实现了“回调”方法的对象,因此创建整个类和方法的能力可能很有用。

最佳答案

两种可能性:

  • Java 脚本 API:
  • EL,表达式语言。

脚本 API 获取结果的速度可能最快,但 EL 更好。

关于java - 在运行时将字符串解析为 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com