怎样把字符串变为程序语句执行? String str="i++";if(str=="i++") i++;能够满足你的需求,不过好象有点怪怪的。高手们,看看有何解决方法。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Program Edit?只是在书本上听说过,没有用过,可以参考这方面的书 自己写方法实现,java不是c,没有操作符重载 其实要实现这个问题有一个解决方法:不知你注意到JSP的代码没有,从中可以得到一点提示,就是将你想执行的字符串组合成一个完整结构的Java程序输出到文本文件中去,然后通过Java调用原生代码执行javac、java,通过获得运行退回结果(return i; or System.exit(i)),不过这样会比较没效率。。 System.out.println("i++;"+"i++); 用BSF,你可以实现比这复杂得多的语句,它甚至能解析你的程序。如果想做语法分析器,建议你使用ANTLR。 Class temp = Class.forName(“fdfd”);T as = (T)(temptask.newInstance()); wangwenyou(王文友) 说的BSF是什么工具? IBM 的Bean Scripting Framework,一个脚本引擎,使用它可以让你的系统提供类似于VBA的各种脚本支持。 这个好像不能加到我的java程序代码中去吧我的需求是这样的:我要执行JNI函数,这个函数名称是不确定的,可以动态添加我想用字符串提供函数名称,然后执行函数。请大家帮帮忙! 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 } ...} 我有个想法,不过还没写成代码~~做一个Factory模式的生成类~~~ReadClass把你要解析的字符串作为配置文件再用ReadClass进行读取,将读到的字符串分割,读出你需要的属性。再自动生成带有你想要的语句的类~~~当然是作为这个类的某个函数。不过这样看起来很麻烦啊~~~ helpall的方法正是我想要的,谢谢,测设成功如果函数需要参数的话要改进一下上面的几句程序我的想法是用户只用一个String变量提供函数名称,不用写具体的函数代码,自动根据String内容执行函数。如果用工厂模式解释的话,class YourImpl是一个工厂类,所有方法(函数)实现都在这个类里面完成。有新功能(新函数)添加时,不用改动用户的程序,只需改变工厂类 Swing客户端可以用调用cookie吗? String a=null 与String a="a" 是否占用的内存空间大小一样? 关于一个输出的问题 jtds Google校园招聘的面试题目 JAVA多线程问题,谁能解释为什么选B? 请问如何使用proGuard进行混淆,谢谢了! int a = 0xf4240?这句话数值到底是多少?0xf是什么东西? 关于JAVA的问题请不吝指教 小白又来请教问题了 客户端打印解决方案求解 放在JScrollPane里面JTable的Column过多时,TableHead不正常...
只是在书本上听说过,没有用过,可以参考这方面的书
如果想做语法分析器,建议你使用ANTLR。
T as = (T)(temptask.newInstance());
我的需求是这样的:
我要执行JNI函数,这个函数名称是不确定的,可以动态添加
我想用字符串提供函数名称,然后执行函数。
请大家帮帮忙!
// 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
}
...
}
做一个Factory模式的生成类~~~ReadClass
把你要解析的字符串作为配置文件再用ReadClass进行读取,将读到的字符串分割,读出你需要的属性。再自动生成带有你想要的语句的类~~~当然是作为这个类的某个函数。
不过这样看起来很麻烦啊~~~
如果函数需要参数的话要改进一下上面的几句程序
我的想法是用户只用一个String变量提供函数名称,不用写具体的函数代码,自动根据String内容执行函数。
如果用工厂模式解释的话,class YourImpl是一个工厂类,所有方法(函数)实现都在这个类里面完成。有新功能(新函数)添加时,不用改动用户的程序,只需改变工厂类