public static void main(String[] args) {
int a = 1;
int b = 2;

String str = "a-b<0";
if(a-b<0){
System.out.println("******");
}
}如题,如何将
if(a-b<0){替换成类似if(str){来作为判断?提出思路也可以的,谢谢

解决方案 »

  1.   

    没办法
    就算是要求str="2-1"都相当麻烦
      

  2.   

    http://blog.163.com/summer_travel/blog/static/199374215201110954424588/
    用apache的JexlEngine  
      

  3.   

    或者用eval.jar
    http://blog.csdn.net/xuhuanchao/article/details/5536208
      

  4.   

    非要那么做呢,用双目运算符来确定,虽然跟你说的有些出入,但是,代码量也是挺小的。再说了,把字符串作为一个条件判断也不行啊,起码应该是boolean类型吧。可以这样:
    boolean str=(a-b<0)?true:false;更方便的就是直接使用计算结果来判断。能解决问题就行了,干嘛非要整得那么让人不可思议呢。一家之言,楼主莫怪啊
      

  5.   

    正如楼上提到的
    JEXL 引擎可以计算String中的表达式
    另外,若是jdk1.6的话,可以直接使用ScriptEngineManager用js的eval进行计算
      

  6.   

    4楼,其实我的本意是将部分判断语句作为配置放在数据库内,但是如果把所有的描述都写出来,打字太累。所以转换了一下概念,从大家的回答来看,我转换的意思大家是理解的。
    然后感谢2楼,JEXL是正解。因为JAVA属于编译后执行语言,所以必须从框架上想办法,或则考虑反射。另EVAL我尝试了一下,貌似是解决四则运算,这样的话,我使用逆波兰表达式已经解决了,谢谢。另外5楼,我替你的语文老师感到悲哀,看不懂的情况下轻易的下达了结论,而且对提问者毫无帮助,你何必打这几个字自取其辱呢。