1

在我的 java 程序中有一些带有条件语句的“if then else”循环几乎每天都在变化。我们不能一直更改代码、进行构建和部署。因此,我们决定将整个“if then else”循环放到 java 代码之外。我的一个想法是将整个“if then else”表示为 XML 文件。这样,当“if then else”循环发生变化时,我们不会更改代码,而只是更新某个文件中的 xml。这样就不会有任何代码更改。我的第一个问题是:XML 是正确的方法吗?

如果 xml 是正确的方法,那么我如何将 java 代码中存在的条件语句(if then else)放入 xml。这是我的第二个问题。然后我的计划是在运行时读取这个 xml 并执行“if then else”循环。现在我将如何在运行时再次在 java 中使用条件语句执行“if then else”循环?这是我的第三个问题。

我的想法是(这可能是愚蠢的):如果我使用 XML 方法,我可以使用 DOM 处理器轻松遍历 XML。我可以将条件语句作为“文本”放在 xml 节点或元素中。xml 中的条件语句示例如下:

(((if x == 100 || x == 200) && (y != 0)) || (a > 1 && b < 20))

现在如何在java中执行上述条件语句?尤其是所有的“&&”和“||” 运营商。我不知道。请在这里提供任何帮助。

这个问题可能有点令人困惑。我试图尽可能多地理解它。

4

2 回答 2

0

许多人使用 XSLT 正是为了这个目的。当然,任何语言的程序更改都应该在投入生产之前进行彻底的测试。但是存在一定程度的风险,将您的代码分成很少更改的 Java 部分和经常更改的 XSLT 部分可以更轻松地管理测试,因此您只需对已更改的部分运行测试。

从您的问题中,我不清楚代码中频繁更改的部分是否实际上是在操纵 XML。如果是,那么从 Java 调用的 XSLT 将是一个很好的解决方案。如果不是,那么其他脚本语言可能更合适。

于 2013-08-24T16:12:42.293 回答
0

XML 将很难每天更新。可能比重新编译和部署更难。这是您想要编写一些脚本的时刻。这里有很多脚本语言。选择一款适合您需求的产品。我还没有任何脚本编写经验,但我听说有时会使用 Lua。Wikipedia在此处提供了一些使用 Lua 快速更改逻辑的应用程序/游戏的演示列表。

另一种方法可能是使用像 Beanshell 这样的 Java 解释器。Beanshell 将在运行时将字符串形式的 Java 代码编译为 RAM 中真正的可执行字节代码。这将允许您在代码之外编写一个小的 Java 脚本。

始终小心恶意脚本注入。

于 2013-08-24T14:08:16.127 回答