String str = "int i = 2; int j = 3;";
现在如何将i和j转换成int变量并其值相加等于5?

解决方案 »

  1.   

    看看编译原理吧,java的反射不支持这个
      

  2.   

    这个涉及动态编译,与反射没有关系的。可以采用 Java 的那些动态语言实现。下载 BeanShell 脚本引擎包,采用下面的代码计算:import bsh.EvalError;
    import bsh.Interpreter;public class Test {
        
        public static void main(String...args) throws EvalError {
            String str = "int i = 2; int j = 3;"; 
            Interpreter bsh = new Interpreter();
            bsh.eval(str);
            System.out.println("i = " + bsh.get("i"));
            System.out.println("j = " + bsh.get("j"));
        }
    }BeanShell: http://www.beanshell.org/