String str="i++";
if(str=="i++")
  i++;
能够满足你的需求,不过好象有点怪怪的。
高手们,看看有何解决方法。

解决方案 »

  1.   

    Program Edit?
    只是在书本上听说过,没有用过,可以参考这方面的书
      

  2.   

    自己写方法实现,java不是c,没有操作符重载
      

  3.   

    其实要实现这个问题有一个解决方法:不知你注意到JSP的代码没有,从中可以得到一点提示,就是将你想执行的字符串组合成一个完整结构的Java程序输出到文本文件中去,然后通过Java调用原生代码执行javac、java,通过获得运行退回结果(return i; or System.exit(i)),不过这样会比较没效率。。
      

  4.   

    System.out.println("i++;"+"i++);
      

  5.   

    用BSF,你可以实现比这复杂得多的语句,它甚至能解析你的程序。
    如果想做语法分析器,建议你使用ANTLR。
      

  6.   

    Class temp  =  Class.forName(“fdfd”);
    T as =  (T)(temptask.newInstance());
      

  7.   

    wangwenyou(王文友) 说的BSF是什么工具?
      

  8.   

    IBM 的Bean Scripting Framework,一个脚本引擎,使用它可以让你的系统提供类似于VBA的各种脚本支持。
      

  9.   

    这个好像不能加到我的java程序代码中去吧
    我的需求是这样的:
    我要执行JNI函数,这个函数名称是不确定的,可以动态添加
    我想用字符串提供函数名称,然后执行函数。
    请大家帮帮忙!
      

  10.   

    String string;
    // if(string is valid)
       Object o = Class.forName("YourImpl").getDeclaredConstructor(null).netInstance(null);
       Method m = Class.forName("YourImpl").getDeclaredMethod(string, null);
       m.invoke(o,null);class YourImpl {
      public void methodA(){
         // JNI calls
      }
     ...
    }
      

  11.   

    我有个想法,不过还没写成代码~~
    做一个Factory模式的生成类~~~ReadClass
    把你要解析的字符串作为配置文件再用ReadClass进行读取,将读到的字符串分割,读出你需要的属性。再自动生成带有你想要的语句的类~~~当然是作为这个类的某个函数。
    不过这样看起来很麻烦啊~~~
      

  12.   

    helpall的方法正是我想要的,谢谢,测设成功
    如果函数需要参数的话要改进一下上面的几句程序
    我的想法是用户只用一个String变量提供函数名称,不用写具体的函数代码,自动根据String内容执行函数。
    如果用工厂模式解释的话,class YourImpl是一个工厂类,所有方法(函数)实现都在这个类里面完成。有新功能(新函数)添加时,不用改动用户的程序,只需改变工厂类