'如果那么Else'循环使用条件运算符从Java代码到XML或其他东西

时间:2013-08-24 14:03:41

标签: java xml dom if-statement conditional-operator

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

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

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

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

现在如何在java中执行上述条件语句?特别是所有的“&amp;&amp;”和“||”运营商。我不知道。请帮忙。

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

2 个答案:

答案 0 :(得分:0)

每天都很难更新XML。也许更难以重新编译和部署。这是您想要编写脚本的时刻。这里有很多脚本语言。选择一个满足您需求的产品。我还没有任何编写脚本的经验,但我听说有时使用Lua。维基百科有一些使用Lua快速更改逻辑here的应用程序/游戏的演示列表。

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

始终小心使用邪恶的脚本注射。

答案 1 :(得分:0)

许多人使用XSLT正是为了这个目标。当然,任何语言的程序更改都应该在投入生产之前进行全面测试。但是存在一定程度的风险,并且将代码分成很少变化的Java部分和频繁变化的XSLT部分可以使管理测试更加容易,因此您只需对已更改的部分运行测试。

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