java - 将字符串转换为java代码

标签 java dynamic

我有一个在运行时构造的字符串,例如

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/

相关文章:

java - 映射时处理重复的键

java - 未能创建 JVM; JVM 路径 C :\Program Files\Android\Android Studio\jre\jre

java - Oracle glassfish4.1 jms数据库存储

java - 在 Spring Data REST 中配置多对多关系,以便删除一个对象不会删除另一个对象

html - 在输入中添加新的输入字段

java - 使用 toString 方法和 arraylist.clear 显示帐户信息

c - 在 C 中初始化动态 union 数组

python - 更改 python matplotlib 颜色图动态范围为特定范围

java - 动态更新 JFrame 的问题

javascript - insertRow() 到特定行 id