【发布时间】:2012-01-04 20:50:42
【问题描述】:
可能重复:
Is there a java equivalent of the python eval function?
有一个字符串,类似于String str = "if a[0]=1 & a[1]=2"。如何在真实的 IF THEN 表达式中使用此字符串?例如:
for (Integer[] a : myNumbers) {
if a[0]=1 & a[1]=2 { // Here I'd like to use the expression from str
//...
}
}
【问题讨论】:
-
这是不可能的。您必须实现一个表达式求值器并将其与数组一起提供,因为求值器无法访问局部变量。您可能正在尝试使用过于复杂或不合适的解决方案来解决问题。您要解决的更高层次的问题是什么?
-
是的,它只适用于动态语言,比如 JavaScript。
-
您可以编写自己的解释器,但不能将字符串数据“输入”到 if 关键字中
-
仅仅因为答案是“它不能完成”并不意味着这个问题应该这么快就被否决。
-
可以做到——只是不可取。如果您想了解更多信息,请参阅下面的答案。我相信,这里问题背后的动机比本案的答案更重要。
标签: java string if-statement