我有一个在运行时构造的字符串,例如
str = "a+dataValue(i)";
其中“a”是变量,“dataValue(i)”
是带有参数 i 的函数
现在我有一个函数,我想在其中使用字符串 str 作为代码的一部分。例如
public void func()
{
for(int i=0;i<n;i++)
Sytem.out.println(converted_to_java_source(str)); //(i.e.) a+dataValue(i); it should be converted at runtime not compile time
}
我需要如下输出:
when a = 2; dataValue(i) returns i; n = 5
On call to func it should print
2 3 4 5 6 7
谢谢。
最佳答案
您正在寻找 JavaScript、Perl、Python 等动态类型语言中 eval
函数/方法的 Java 等效项。不幸的是没有。
在 Java 中,有多种方法可以完成此类操作,但它们都很昂贵,并且还有各种其他缺点。
我的建议是寻找另一种(更简单/更便宜)的方式来满足您的要求。
<小时/>如果您确实需要走eval
路线,那么这里有一些相关的问答,它们对选项进行了合理的覆盖。:
关于java - 将字符串转换为java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10378699/